HasPrincipalKey() 等价于 Entity Framework 6?
HasPrincipalKey() Equivalent for Entity Framework 6?
EF Core 允许我在非主键的 属性 上创建外键关系:
public class Foo
{
// Primary key
public int Id { get; set; }
// Not primary key, but it does have a unique index.
public Guid Uuid { get; set; }
}
public class Bar
{
public int Id { get; set; }
public Guid FooUuid { get; set; }
}
EF Core 与 Fluent API
// Bar
builder.Property(c => c.FooUuid).IsRequired();
builder.HasOne<Foo>()
.WithMany()
.HasForeignKey(c => c.FooUuid)
.HasPrincipalKey(g => g.Uuid)
.IsRequired()
.OnDelete(DeleteBehavior.Restrict);
我找不到用 EF6 和 Fluent API 执行此操作的等效项。
谁能帮帮我 :)?
在 EF6 中,每个实体只有一个键。但是您可以自由配置您的实体密钥以映射到数据库中的任何密钥。因此,您可以将 Foo.Uuid
作为实体键。
EF Core 允许我在非主键的 属性 上创建外键关系:
public class Foo
{
// Primary key
public int Id { get; set; }
// Not primary key, but it does have a unique index.
public Guid Uuid { get; set; }
}
public class Bar
{
public int Id { get; set; }
public Guid FooUuid { get; set; }
}
EF Core 与 Fluent API
// Bar
builder.Property(c => c.FooUuid).IsRequired();
builder.HasOne<Foo>()
.WithMany()
.HasForeignKey(c => c.FooUuid)
.HasPrincipalKey(g => g.Uuid)
.IsRequired()
.OnDelete(DeleteBehavior.Restrict);
我找不到用 EF6 和 Fluent API 执行此操作的等效项。
谁能帮帮我 :)?
在 EF6 中,每个实体只有一个键。但是您可以自由配置您的实体密钥以映射到数据库中的任何密钥。因此,您可以将 Foo.Uuid
作为实体键。