2013-09-30 26 views
1

我想使用特定於目的的id類型(例如PersonId用於Person類)。它要求我到我的自定義類(PersonId)映射到int,並把它作爲主鍵我可以將類映射到int並將其用作主鍵嗎?

public class PersonId 
{ 
    int Id; 
} 

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

我可以映射這個班EF?

回答

1

將類作爲主鍵是不可能的。使用Entity Framework主鍵必須是原始類型或字節[]。

如果您想爲主鍵以外的事情做類似的事情,您可以使PersonId類成爲複雜類型。

[ComplexType] 
public class PersonId 
{ 
    int Id; 
} 

或用流利的API

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

,但你將不能夠使用該ID作爲實體的主鍵

+0

不幸的是使用它作爲一個主鍵是關鍵要求; p – joozek

+0

然後你想要做的事情不能完成。只有原始字節或字節[]可以用作實體框架的主鍵。 –

相關問題