1

朋友我在 Linq 工作。我在 linq 查询中使用 join 和实体模型,如下所示。

var Records = from Cats in Context.Categories
join prod in Context.Products on Cats.Id equals prod.Category_Id
select new { CatName = Cats.Name, ProdName = prod.Name };

我想转换对象列表中的记录变量,所以我创建了一个包含两个实体值(产品、类别)的中间对象。现在,当我将此 var 转换为列表时

List<test> testList = (List<test>)Records;

作为 Record.ToList(); 是编译器错误。我如何将 var 对象转换为 list 以便将其与前端的 listview 绑定。lambda 中是否有任何替代方案,也将不胜感激。我的做法对吗?

我的测试课是:

class test{
string catname;
string productname;
}
4

2 回答 2

3

用于ToList()您的查询。

var Records = (from Cats in Context.Categories
               join prod in Context.Products on Cats.Id equals prod.Category_Id
               select new test { CatName = Cats.Name, ProdName = prod.Name }).ToList();

为了使其工作,您需要按如下方式定义您的测试类(您需要定义属性)

public class test {
   public string catname {get;set;}
   public string productname {get;set;}
}
于 2013-10-04T11:29:35.310 回答
2

相应地创建new Test和设置属性,最后调用ToList

List<test> testList = (from c in Context.Categories
join p in Context.Products on c.Id equals p.Category_Id
select new Test{ Category= c, Product= p}).ToList();

如果有像下面这样的课程

public class Test{

    public string CatName{ get; set; }
    public string ProductnName{ get; set; }

}

List<test> testList = (from c in Context.Categories
join p in Context.Products on c.Id equals p.Category_Id
select new Test{ CatName= c.Name, ProductnName= p.Name}).ToList();
于 2013-10-04T11:33:09.083 回答