1

我想使用特定目的的 id 类型(例如 Person 类的 PersonId)。它要求我将我的自定义类 ( PersonId) 映射到 anint 并将其用作主键

public class PersonId
{
    int Id;
}

public class Person
{
    PersonId Id;
    // ...
}

我可以在 EF 中映射这些类吗?

4

1 回答 1

1

将类作为主键是不可能的。对于 Entity Framework,主键必须是原始类型或 byte[]。

如果你想对主键以外的东西做类似的事情,你可以将 PersonId 类设置为 Complex 类型。

[ComplexType]
public class PersonId
{
    int Id;
}

或使用流畅的 API

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.ComplexType<PersonId>();
}

但您将无法使用该 ID 作为实体的主键

于 2013-09-30T12:00:29.897 回答