我有两个具有多对多关系的实体,我正在寻找一种能够对表中的结果进行排序的方法。
换句话说,当我从 table1 中获取一行并从 table2 中获取所有相应的记录时,我希望能够为 table2 存储特定于 table1 中该行的排序顺序。
我的第一个想法是在表示关系的表中添加一个排序列,但据我所知,没有办法访问关系中的新列。
有人对如何完成此任务有任何建议吗?
最佳答案
正如 Ladislav Mrnka 所说,如果您将新列添加到联结表,“中间”将有一个新实体,这将使导航变得更加困难。
如果你想避免这种情况,但仍然能够像往常一样进行导航,你可以保留连接表并添加一个新表,就像连接一样,添加订单列。当您需要订单信息时,只需加入此表即可获取并使用。
当然,这个新表需要一些维护。 IE。您可以为联结表的联结+顺序创建级联删除。并使用触发器(哎呀,这不好!)为每个新创建的关系创建一个具有默认顺序的新行。因此,更明智的做法是在您的业务逻辑中处理此问题。
我知道这太棘手了,但没有什么 Elixir ...只需选择对您来说更舒服的方法即可。
关于c# - Entity Framework :多对多排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10894925/