【发布时间】:2018-08-12 00:17:06
【问题描述】:
如果我想将实体作为主键,我必须如何在 EF Core 中映射身份基类
我在这个例子中基于 Vaughn Vernon (example) 的项目示例,他创建了一个这样的身份类:
public class ProductId : Identity
{
public ProductId()
: base()
{
}
public ProductId(string id)
: base(id)
{
}
}
这是他的实现
public class Product {
public ProductId ProductId {get; private set;}
}
我怀疑映射这个的正确方法是什么?因为我试图直接映射modelBuilder.Entity<Product>().HasKey(p => p.ProductId); 但在迁移 EF Core 告诉我
无法调用实体类型“Product”上的属性“ProductId”的属性,因为它被配置为导航属性。 属性只能用于配置标量属性。
我知道我可以使用 OwnsOne,但如果我这样做,我就不会创建身份主键,对吧?
【问题讨论】:
标签: c# entity-framework-core ef-fluent-api ef-core-2.0