我有一个类似于以下的linq查询,它与实体ProductCategories连接:
var list = from p in db.Products
join pc in db.ProductCategories on p.ProductCategoryId equals pc.Id
select new Product()
{
Id = p.Id, Name = p.Name, CategoryName = pc.Name
};
假设我想选择p。*并另外设置ProductCategories的CategoryName导航属性。这可能吗?或者,在使用导航属性时,我是否总是必须指定所有内容?
答案 0 :(得分:2)
创建一个匿名对象,并在一个属性下选择您的产品对象,在另一个属性下选择类别名称
select new
{
Product = p, Name = p.Name, CategoryName = pc.Name
};
答案 1 :(得分:0)
如果您需要整个内容,并且您的导航属性设置正确(请确保您的文件顶部有using System.Data.Entity;
),以下内容也可以正常运行:
var list = db.Products.Include(p=>p.ProductCategories);
或更简单的匿名类:
var list = db.Products.Select(p=>new {
p.Id,
p.Description,
ProductCategoryName=p.ProductCategories.Name});