它想要对一个集合进行排序并使用它的外键。我有一个1:0 ... 1的关系,并在我的MVC应用程序中显示它。
OutreachSet ==> 0:0 ... 1 ==> MotivationSet
public class OutreachSet
{
[Key]
[Display(Name = "Target Contact")]
public string TargetContact { get; set; }
public virtual MotivationSet MotivationSet { get; set; }
}
public class MotivationSet
{
[Key, ForeignKey("OutreachSet")]
[Display(Name = "Target Contact")]
public string Name { get; set; }
[Required]
public virtual OutreachSet OutreachSet { get; set; }
}
var motivations = db.Motivations.Include(m => m.OutreachSet);
var result = motivations.Select(s => s.OutreachSet).OrderByDescending(s => s.TargetContact);
就在这里,我得到了OutreachSet的内容,但不是我想用作oderby标准的TargetContact。这是使用context.Entry
进行此操作的最佳方式我遇到的另一个问题是,在查看Quickwatch OutreachSet和MotivationSet时,请继续无限地引用它们。
如果我使用例如这样:
var test = db.Entry(db.Motivations.First()).Entity.OutreachSet.TargetContact;
然后我无法弄清楚如何对它进行排序。
答案 0 :(得分:1)
目前还不太清楚你想要实现的目标,所以假设你想得到一个按相关OutreachSet
MotivationSet
排序的TargetContract
集合。
有几种方法可以做到这一点,但最简单的方法就是在查询中交换select
和order by
子句:
var result = motivations.OrderByDescending(s => s.TargetContact).Select(s => s.OutreachSet);