基本上我想在每次需要一个对象列表时停止使用foreach作为我的List。
IEnumerable<int> myKeys = _context.MyTable.Where(x => x.Name == name);
foreach(var key in keys)
{
var myObject = _context.FirstOrDefault(x => x.key == key);
_context.MySecondTable.Remove(myObject);
}
linq中是否存在允许我传入键列表的方法,或者我是否一直在迭代我的键并且一次只能获取一个键?
我希望使用RemoveRange();
_context.MySecondTable.RemoveRange(myObjects);
答案 0 :(得分:2)
IEnumerable<int> myKeys = _context.MyTable.Where(x => x.Name == name);
foreach(var obj in _context.MySecondTable.Where(o => myKeys.Contains(o.key))
var myObject = _context.Remove(obj);
或者,如果您的上下文支持多个删除:
var myKeys = _context.MyTable.Where(x => x.Name == name);
var myObject = _context.RemoveRange(
_context.MySecondTable.Where(o => myKeys.Contains(o.key));