2009-12-23 45 views
1

是他們使用實體框架代碼只是爲了有一個具有兩個表中的字段的實體如果兩個表不包含主鍵的方法嗎?實體分割與代碼只

這裏是一個例子。

public class BlogPost 
{ 
    public int PostID { get; set; } 
    public String PostBody { get; set; } 
    public int UserID { get; set; } 
    public string Username { get; set; } 
} 

public class User 
{ 
    public int UserID { get; set; } 
    public String Username { get; set; } 
} 

public class BlogPostConfiguration : EntityConfiguration<BlogPost> 
{ 
    public BlogPostConfiguration() 
    { 
     HasKey(b => b.PostID); 
    } 
} 

public class UserConfiguration : EntityConfiguration<User> 
{ 
    public UserConfiguration() 
    { 
     HasKey(b => b.UserID); 
    } 
} 

我想要的博客帖子對象的用戶名屬性被映射到用戶表的用戶名的列。我可以使用設計器使用外鍵進行映射,但我不確定如何使用Code Only執行此操作。我嘗試在配置對象中使用兩個MapHierarchy語句,但它看起來像只有在兩個表都使用相同的主鍵時才起作用。

+1

你見過從pdc09約EF這個 http://microsoftpdc.com/Sessions/FT10演示?如果不是 - 請看看它。 – 2009-12-25 11:48:04

+0

感謝亞歷山大,該視頻是偉大的,但遺憾的是它並沒有解決實體分割。對於任何進入EF的人都強烈推薦觀看。 – TonyB 2009-12-28 20:24:12

回答

0

我不認爲這是可能的實體框架的當前狀態。

爲了做到,你必須有一個1對1的映射實體分裂(主鍵必須是兩個表中)。

我是不正確的和我的假設,因爲你可以從第二個表中的代碼將實際工作的設計師添加列追問。當我嘗試在EDMX中執行映射時,出現非常類似的錯誤,就像我在使用僅限代碼時一樣。