幸运的是,EF Core允许您定义和使用Shadow属性作为PK。
例如,以下流利的配置将创建名为“ Id”的标识列,并将其用作PK:
modelBuilder.Entity<Message>() .Property<int>("Id") .ValueGeneratedonAdd();modelBuilder.Entity<Message>() .HasKey("Id");ValueGeneratedOnAdd并且
HasKey在这种情况下是多余的,因为习惯上名为“
Id”的属性是PK,
int习惯上类型PK是自动生成的,但是为了完整起见,我添加了它们。
但是请注意,使用影子PK会更加困难。添加很容易,但是读取,更新和删除操作会出现问题。
EF.Property可以在LINQ查询中使用该方法来引用影子PK,但是通常,如果您想更新或删除一条记录,则需要一些辅助条件。



