<T>使用实体框架从不在 MyList(字段) 中的实体中选择



我有一些代码来检查我在数据库中的版本字段是否包含在MyList<EntityPoco>中的任何项目中。

我想知道是否有比我已经拥有的更好的方法或更简单的方法可以做到这一点:

List<Model.Job> jobs = mapperJobs.Map(dt).ToList();
bool itemExists = false;
foreach (Model.Job job in jobs)
{
var result = db.Jobs.Where(a => (a.Version == job.Version));
// If the item exists move on.
if (result.Any())
{
itemExists = true;
break;
}
// Else we need to insert a new record in the db 
if (!itemExists)
{
db.Jobs.Add(job);
}
} // ... db save changes after adding everything we want

不能在EF 中联接到内存中集合,可以提取值列表并使用Contains

var jobVersions = jobs.Select(job => job.Version).ToArray();
var result = db.Jobs.Where(a => jobVersions.Contains(a.Version));

最新更新