使用实体框架查找数据库中不在复杂对象列表中的所有ID

时间:2013-03-25 14:02:38

标签: c# entity-framework

所以我要做的是在CSV和数据库之间创建一个基本的同步系统(不使用SSIS),它还会为计算等做一些其他神奇的工作。

同步的第一步是删除数据库中不再位于CSV文件中的所有用户。

我有一个List<StaffInfo> StaffInfo

public class StaffInfo
{
    public int ID {get;set;}
    public string Firstname {get;set;
    // etc etc etc ... ... ...
}

我最初的想法是从列表中获取UserID列表,然后选择不在DB中的用户然后循环并删除,但这似乎非常浪费

// oUsers contains List<StaffInfo>
// Context is the reference to the EF Context 
var myList = (from c in oUsers select c.ID).ToList();
var usersNotInDb = context.Users.Where(x => !myList.Contains(x.UserId));

foreach (var user in usersNotInDb)
{
    context.DeleteObject(user);
}
context.SaveChanges();

有没有更好的方法来实现这一目标,无需数据传输或直接操作数据(即将复杂对象转换为用户ID列表)

0 个答案:

没有答案