多对多有顺序

many to many with order

我正在使用这个:

modelBuilder.Entity<X>()
.HasMany(u => u.Ys)
.WithMany()
.Map(m =>
{
    m.ToTable("XToYs");
    m.MapLeftKey("XId");
    m.MapRightKey("YId");
});

为 X 和 Y 之间的多对多关系建模。有没有办法像这样添加一个顺序:

XId Yid Order
1   2   1
1   3   2

基本上你想做的是:

public class XY
{
    public int XId {get; set;}
    public virtual X X{get; set;}
    public int YId {get; set;}
    public virtual Y Y {get; set;}
    public int Order {get; set;}
}

并在您的模型构建器中:

builder.Entity<X>()
    .HasMany(x => x.Y)
    .WithRequired()
    .HasForeignKey(k => k.YId);

builder.Entity<Y>()
    .HasMany(y => y.X)
    .WithRequired()
    .HasForeignKey(k => k.XId);