[英]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.