EF-需要定义主键

时间:2019-10-27 20:49:00

标签: c# .net-core entity-framework-core

尝试创建仅具有外键的新表:

public class OnlyFKs
    {
        public double a3 { get; set; }
        public int a1 { get; set; }
        public int a2 { get; set; }
        public string b { get; set; }
        public Bs B { get; set; }
        public As A { get; set; }
    }

在A和B中存在:

public ICollection<OnlyFKs> OnlyFKs { get; set; }

进展不佳:

modelBuilder.Entity<OnlyFKs>(o =>
            {
                o.HasOne<Bs>(thisB => thisB.B)
                    .WithMany(g => g.OnlyFKs)
                    .HasForeignKey(s => s.b);
                o.HasOne<As>(thisA => thisA.A)
                    .WithMany(g => g.OnlyFKs)
                    .HasForeignKey(g => new { g.a1, g.a2, g.a3 });
            });

是否不可能创建没有主键而只有外键的表?

1 个答案:

答案 0 :(得分:0)

必须有一个主键。如果您不希望有一个ID列,而是创建诸如联接表之类的内容,则可以创建由a1,a2,a3和b组成的复合键。

  

Entity Framework Core支持复合键-主键值   从数据库中的两个或多个字段生成。但是,与   以前版本的Entity Framework,您不能使用Key   属性定义组合键。这只能通过   流利的API。

https://www.learnentityframeworkcore.com/configuration/data-annotation-attributes/key-attribute#composite-keys