我想使用特定目的的 id 类型(例如 Person 类的 PersonId)。它要求我将我的自定义类 ( PersonId
) 映射到 anint
并将其用作主键
public class PersonId
{
int Id;
}
public class Person
{
PersonId Id;
// ...
}
我可以在 EF 中映射这些类吗?
我想使用特定目的的 id 类型(例如 Person 类的 PersonId)。它要求我将我的自定义类 ( PersonId
) 映射到 anint
并将其用作主键
public class PersonId
{
int Id;
}
public class Person
{
PersonId Id;
// ...
}
我可以在 EF 中映射这些类吗?
将类作为主键是不可能的。对于 Entity Framework,主键必须是原始类型或 byte[]。
如果你想对主键以外的东西做类似的事情,你可以将 PersonId 类设置为 Complex 类型。
[ComplexType]
public class PersonId
{
int Id;
}
或使用流畅的 API
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.ComplexType<PersonId>();
}
但您将无法使用该 ID 作为实体的主键