C#Linq Lamda查询以形成视图模型列表

时间:2019-07-18 09:45:13

标签: c# linq

我有一个ViewModel

public class ProductViewModel
{
    public ProductModel Product { get; set; }
    public string ProductVersion { get; set; }
    public UserModel User { get; set; }

    ...
}
  • 我查询数据库并获取一个数据集,该数据集具有一个表Table[0],该表具有-多行-我的ViewModel的所有成员(即Product,ProductVersion,User)的详细信息列表

我的数据库查询如下

SELECT productName,
       productID,
       productPrice,
       ...
       PRODUCTVerion, 
       UserName,
       UserID,
       UserEmail
  FROM Product,
       ProductVersionCtrl,
       User
  ...
  • 我的方法的返回类型是 产品视图模型的IEnumnerable <>
  • 我的要求我需要一个lamda linq查询,该查询将框架\形成IEnumnerable对象 ProductViewModel的 返回类型在下面给出
  

IEnumerable<ProductViewModel>

我尝试过的事情

我有想法放置属于一个复杂对象的简单数据

IEnumerable<DealerModel> list = dsData.Tables[0].AsEnumerable().Select(p =>
            new DealerModel()
            {
                DealerID = int.Parse(p["DealerID"].ToString()),
                DealerName = p["DealerName"].ToString(),
                DealerContactNo = p["DealerContactNo"].ToString(),
                DealerEmailID = p["DealerEmailID"].ToString(),
                DealerPassword = "******",
                IsActive = int.Parse(p["IsActive"].ToString())
            });

但是我无法在ViewModel中放置其他对象

1 个答案:

答案 0 :(得分:0)

是的,下面的内容对我有用。

IEnumerable<ProductBuyViewModel> productBuyList = dsData.Tables[0].AsEnumerable().Select(p =>
                 new ProductBuyViewModel()
                 {
                      ProductBuy = {ProductName = p["productName "],ProductPrice =p["ProductPrice ...]},
                      ProductVesrion =p["ProductVesrion "],
                      User         = {UserName =...}
                 });