我想使用特定于目的的id类型(例如PersonId for Person类)。它要求我将自定义类(PersonId
)映射到int
并将其用作主键
public class PersonId
{
int Id;
}
public class Person
{
PersonId Id;
// ...
}
我可以在EF中映射这些类吗?
答案 0 :(得分:1)
无法将类作为主键。使用Entity Framework主键必须是基本类型或byte []。
如果你想做除了主键以外的其他事情,你可以使PersonId类成为复杂类型。
[ComplexType]
public class PersonId
{
int Id;
}
或使用流畅的API
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.ComplexType<PersonId>();
}
但您将无法将该Id用作实体的主键