指定排序
本文关键字:排序 | 更新日期: 2023-09-27 18:01:42
我有一组嵌套到不同层次的POCO模型,这些模型是通过使用实体框架powertools对现有数据库进行逆向工程生成的。我有一个模型,看起来像这样:
public partial class Model
{
public Model
{
this.subModels = new List<subModel>();
}
public virtual ICollection<subModel> submodels { get; set; }
}
和看起来像这样的子模型:
public partial class subModel
{
public int subModelID { get; set; }
public int foo1 { get; set; }
public int foo2 { get; set; }
}
我需要的是Model
中的subModels
由foo1
然后foo2
排序,而不是由主键subModelID
排序,但我不能找出最好的方法来做到这一点。似乎没有一个地方,我可以告诉它从数据库中检索数据已经在这个顺序,当我尝试使用subModels
属性在Model
我似乎不能使用任何Linq上。我唯一能做的就是使用GetEnumerator()
,并以数据库吐出它们的顺序枚举它。
我用MySQL,如果这有任何区别。
更新:好吧,我可以使用Linq,我只是忘记添加using
语句。这是漫长的一周!不过,我想知道是否有可能告诉EF在第一时间以正确的顺序查询数据。
如果你想显式加载你的导航属性,你可以这样做:
Model model;
context.Entry(model)
.Collection(k => k.submodels )
.Query()
.OrderBy(p => p.foo1 )
.ThenBy(p=> p.foo2 )
.Load();
这有点麻烦,但可以工作。不过,当你想使用它们的时候,订购它们似乎也一样容易。