[英]ENTITY FRAMEWORK OrderBy on Navigation Property (one-to-many)
在我的EF CodeFirst DB中,我有两个实体:
public class Prod
{
public int ProductId {get;set;}
......
......
public ICollection<ProdLang> ProdLangs {get;set;}
}
public class ProdLang
{
public int ProdLangId {get;set;}
public int LangId {get;set;}
public string Name {get;set;}
public string Description {get;set;}
......
......
public Product Product {get;set;}
}
or for example, by a single 使用“急切加载”,我想加载由或排序的Prod集合,例如,由单个
我能做什么?
谢谢。
您的意思是加载由...排序的ProdLang集合(而不是Prod的集合)吗? 如果是这样,这应该可行
public class Prod
{
private ICollection<ProdLang> _prodLangs;
public ICollection<ProdLang> ProdLangs
{
get{ return _prodLangs.OrderBy(p => p.Name).ToList(); }
set{ _prodLangs = value; }
}
}
我看不到您的ProdLang类中的ProductId属性与Prod类一起加入,但是我认为它存在。
因此,您需要执行以下操作:
var products = from p in Context.Prod.Set
from pl in Context.ProdLang.Set
where (p.ProductId == pl.ProductId)
orderby (pl.Name)
select p;
如果要获取ProdLang详细信息,可以使用动态类型:
var products = from p in Context.Prod.Set
from pl in Context.ProdLang.Set
where (p.ProductId == pl.ProductId)
orderby (pl.Name)
select new { Prod = p, ProdLang = pl };
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.