4
我是Linq的新手,一直无法实现这一功能。嵌套在C#中选择Linq
public class ItemMaster
{
public int ItemId{ get; set; }
//other fields
public IList<ItemDetail> Details { get; set; }
}
public class ItemDetail
{
public int DetailId{ get; set; } ;
public int ItemId{ get; set; } ;
//other fields
}
我的视图模型具有
DataTable dtMaster = da.GetItemsMasterDataTable();
DataTable dtDetail = da.GetItemsDetailDataTable();
var list = (from m in dtMaster.AsEnumerable()
select new ItemMaster
{
ItemId = m.Field<int>("ItemId"),
//other fields
Details = (from d in dtDetail.AsEnumerable()
where d["ItemId"] == m["ItemId"]
select new ItemDetail
{
DetailId = d.Field<int>("DetailId"),
ItemId = d.Field<int>("ItemId")
//other fields
}).ToList()
}).ToList();
列表并检索所有主项目,但详细资料数始终为零。所以嵌套选择不起作用。请帮忙!谢谢。
'd [“ItemId”]'返回什么?也许'=='不是正确的比较器。 – Thomas 2012-04-26 14:35:51
我试过m.Field(“ItemId”)== d.Field (“ItemId”)。那也没用。 –
pj123
2012-04-26 14:39:08
尝试:其中d.Field(“ItemId”)== m.Field (“ItemId”) –
graver
2012-04-26 14:41:52