我试图在内存复杂类型列表nameIdList的基础上使用实体框架6从db获取一些记录。
这是我的代码,
var nameIdList = new List<NameId>()
{
new NameId {Id= "425513E3-49F1-417B-A007-70B7BAA7D320",LastModified = "2017-06-22 14:59:14.917", Name= "Name1" },
new NameId {Id= "422FE343-A091-41CE-88E3-EEF427AC0F0E",LastModified = "2017-06-22 11:59:14.917", Name= "Name2" },
};
var ids = nameIdList.Select(i => i.Id);
using (var modelContext= new Model1())
{
var emps = modelContext.Employees.Where(e => ids.Contains(e.EmployeeId)
&& e.LastModified> nameIdList.FirstOrDefault(f=>f.Id==e.EmployeeId).LastModified).ToList();
}
由于实体框架不支持与内存中复杂类型列表的连接,对于上述场景是否有任何其他解决方法而不是使用平面ADO.NET存储过程。 我不想使用AsEnumerable(),因为db中有大量记录会对性能产生严重影响。
我使用的是EF 6和C#4.5
答案 0 :(得分:0)
我知道做这样的工作的唯一方法是将其转换为存储过程,并且具有包含nameIdList中的数据的表值参数。存储过程并不难以在EF中使用,因此可能是一种选择。