读书人

linq to Entity 中如何查询多条记录

发布时间: 2012-03-04 11:13:33 作者: rapoo

linq to Entity 中怎么查询多条记录
现在是给了几条id值,要在一个表中查询,将表中数据的id在这几条id中的数据查出来,意思是说给了几个id,比如是 5,6,7,8;现在表中是有id为 6,8,9,10的数据;现在需要把6,8这两条数据查出来,该怎么做?高手快来帮忙啊。

[解决办法]

C# code
var ids = new List<int> { 6, 8, 9, 10 };var query = from x in ctx.SomeTable            where ids.Contains(x.Id)            select x;
[解决办法]
var listOfIds= new int[]{5,6,7,8};
var context=CreateEntityFrameworkObjectContext();
var results = from item in context.Items
where listOfIds.Contains(item.Category.Id)
select item;
[解决办法]
大致原理如下,逆向实现。
C# code
int[] idset = new int[] { 5, 6, 7, 8 };var result = mydatarows.Where(r=>idset.Contains(r.id));
[解决办法]
var listOfIds= new string[]{"5","6","7","8"};
var context=CreateEntityFrameworkObjectContext();
var results = from item in context.Items
where listOfIds.Contains(item.Category.Id.ToString())
select item;
[解决办法]
实测结果如下,尽管LINQ to Entity与LINQ to SQL Entity有一些差异,在有比较子的运算符上可能需要自己实现,不过你这里的需求应该是可以直接实现的。
C# code
using (NorthwindEntities db = new NorthwindEntities()){    string[] cities = new string[] { "London", "Paris", "Berlin" };    var result = db.Customers.Where(r => cities.Contains(r.City));    foreach (var r in result)    {        Console.WriteLine(r.ContactName);    }} 

读书人网 >.NET

热点推荐