所以我要做的是在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列表)