2012-10-27 65 views
2

我有,當我升級的實體框架5.0的問題,來說明:因爲我已經定義了一個對如何防止實體框架從創建額外的表

public class MyClass 
{ 
    public Foo foo; 

    public ICollection<Student> Students{ get; set; } 

} 

public class Student 
{ 
    public int Id {get; set;} 
    public string s {get; set;} 
} 

public class Foo 
{ 
    public int data {get; set} 
    ... 
} 

EF正確地創建了一個名爲Students表從MyClass到學生的多種關係。我使用Foo類作爲封裝並且具有1對1的關係。

EF 4.0沒有爲Foo創建單獨的表格,而是在MyClass表格中使用屬性數據作爲Foo_data。對於EF 5.0,我得到Foo的另一張表格。

如何告知EF不要爲Foo創建表?

回答

1

我不是100%確定爲什麼/如何從EF4改變,但你想要的是Foo是一個Complex Type。這應該是從Foo沒有Id屬性這一事實得出的。
嘗試去執行:

[ComplexType] 
public class Foo 
{ 
    public int data {get; set} 
    ... 
} 
+0

亨克,太棒了,我會嘗試,解決方案很有意義。 – user1780105

+0

工作就像一個魅力,謝謝:) – user1780105

0

我試圖EF5遷移的時候也有這個問題。我發現EntityFramework已經自動添加DbSet屬性到我的DbContext。它隱藏在課堂底部。

我認爲這必須在生成視圖並提供DbContext時將其選爲ViewModel。不要提供dbContext。