Sql server 实体框架关联上的优先级/顺序int列

Sql server 实体框架关联上的优先级/顺序int列,sql-server,entity-framework,database-design,Sql Server,Entity Framework,Database Design,我在实体框架中有一个关联,但我需要向其中添加一个属性/属性。无论如何,我在实体框架中做这件事都有问题(我更愿意将其作为一个关联,但为了向其添加属性,我不得不将其更改为一个实体),但在这个特定的场景中,我想知道是否有更好的方法来做这件事 关联表非常简单,如下所示: CREATE TABLE EntityA_EntityB ( aId uniqueidentifier, bId uniqueidentifier ) CREATE TABLE EntityA_EntityB ( a

我在实体框架中有一个关联,但我需要向其中添加一个属性/属性。无论如何,我在实体框架中做这件事都有问题(我更愿意将其作为一个关联,但为了向其添加属性,我不得不将其更改为一个实体),但在这个特定的场景中,我想知道是否有更好的方法来做这件事

关联表非常简单,如下所示:

CREATE TABLE EntityA_EntityB (
   aId uniqueidentifier,
   bId uniqueidentifier
)
CREATE TABLE EntityA_EntityB (
   aId uniqueidentifier,
   bId uniqueidentifier,
   order int
)
客户机需要一种方法来优先考虑或排序关联的实体。我认为最好的方法是向该表中添加一个order列(int),结果如下所示:

CREATE TABLE EntityA_EntityB (
   aId uniqueidentifier,
   bId uniqueidentifier
)
CREATE TABLE EntityA_EntityB (
   aId uniqueidentifier,
   bId uniqueidentifier,
   order int
)
在这个场景中,所有三列都将构成主键。这似乎没问题,但它给使用此系统的任何代码增加了相当多的复杂性,因为我不只是将相关的EntityB添加到EntityA中,而是必须在
EntityA.EntityB
集合中找到最大的“订单”数,并将其递增以添加新关联

我可以使order列成为一个标识,但无论aId或bId的值是什么,这都会始终增加order列。我想要的东西,插入援助和出价的全新组合时,插入一个0的订单

有更好的方法吗


谢谢

如果顺序整数不必是连续的,可以将顺序整数作为主键

CREATE TABLE EntityA_EntityB (
   order autoincrementing int
   aId uniqueidentifier,
   bId uniqueidentifier,
)  
在(aId,bId,order)上有一个唯一索引,在(bId,aId,order)上有另一个唯一索引


您只需添加带有aId和bId的行,数据库就会处理order integer

嗨,对不起,我应该提一下。我需要这是连续的顺序,这样你可以插入一行(143156,0),然后(143156,1),但是下一行是(143172,0);就像你在问题中描述的,我想是的。我想问一下是否可以用触发器来实现,但我想不管怎样,实体框架都会要求您提供一个值。