2010-04-28 84 views
2

我有ID值的列表:如何從LINQ to SQL的ID值列表中獲取結果列表?

List<int> MyIDs { get; set; } 

我想這個列表傳遞給一個接口,我的倉庫,並將它返回匹配的ID值,我通過在一個列表

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(); 
} 

,我通過My​​IDs迭代,並通過每個ID在每個結果添加到列表中。

如何更改LINQ以便我可以傳入MyID的完整列表並獲取MyTypes列表? GetMyTypes()將有類似的簽名,以

public List<MyType> GetMyTypes(List<int> myIds) 
+0

重複http://stackoverflow.com/q/1075540/2449863 – DCShannon 2014-10-18 02:10:47

+0

的這個問題,爲4.5歲..你感到無聊嗎? – DaveDev 2014-10-18 07:23:25

+0

是的,我是,但這與發表評論以幫助其他最終尋求幫助的人也沒有任何關係。 – DCShannon 2014-10-20 21:32:37

回答

1
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

未經測試

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(); 
}