如何使用LINQ to SQL从ID值列表中获取结果列表?

时间:2010-04-28 23:57:25

标签: c# linq linq-to-sql

我有一个ID值列表:

List<int> MyIDs { get; set; }

我想将此列表传递给我的存储库的接口,并让它返回一个与我传入的ID值匹配的List。

List<MyType> myTypes = new List<MyType>();

IMyRepository myRepos = new SqlMyRepository();

myTypes = myRepos.GetMyTypes(this.MyIDs);

目前,GetMyTypes()的行为与此类似:

public MyType GetMyTypes(int id)
{
    return (from myType in db.MyTypes
            where myType.Id == id
            select new MyType
            {
                MyValue = myType.MyValue
            }).FirstOrDefault();
}

我遍历MyID并传递每个id并将每个结果添加到列表中。

如何更改LINQ以便我可以传递完整的MyID列表并获取MyTypes列表? GetMyTypes()将具有类似于

的签名
public List<MyType> GetMyTypes(List<int> myIds)

2 个答案:

答案 0 :(得分:2)

public List<MyType> GetMyTypes(List<int> ids)
{
return (from myType in db.MyTypes
        where ids.Contains(myType.Id)
        select new MyType
        {
            MyValue = myType.MyValue
        }).ToList();
}

答案 1 :(得分:1)

未测试

public List<MyType> GetMyTypes(List<int> myIds) {
  var x = from myType in db.MyTypes
          where myIds.contains(myType.Id)
          select new MyType {
            MyValue = mytype.Myvalue
          };
return x.ToList();
}