繁体   English   中英

使用Linq更有效的方法? (CRUD操作)

[英]More efficient way using Linq? (CRUD operation)

有没有更有效的方法来进行以下操作

var admin = //linq to get admin
List<Query> userQueries = db.Queries.Where(x=> x.User == user).ToList();
    foreach (var item in userQueries)
    {
        if(!item.PrivateQuery)
        {
            var vm = new Query();
            item.Id = vm.Id;
            item.Name = vm.Name;
            item.PrivateQuery = vm.PrivateQuery;
            item.Sql = vm.Sql;
            item.User = admin;
        }

        db.Queries.Remove(item);
    }

我是LINQ的新手,并且发现自己经常编写以下代码。 我想知道是否有更有效的方法来完成相同的操作?

非常确定您可以更改此效果。

List<Query> userQueries = _db.Products.Where(x => x.User == user && !x.PrivateQuery).ToList();
db.Queries.RemoveRange(userQueries);

DotNetHitMan已经回答,但是另一种选择是执行T-SQL语句:

db.Database.ExecuteSqlCommand("DELETE FROM Queries WHERE USER = {0} AND PrivateQuery = {1}", user, false);

如果用户是一个ID? 您已经有一个用户,所以这样做

var userQueries = db.Queries.Find(x=> x.User == User && !x.PrivateQuery);

 db.Queries.Remove(userQueries);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM