2016-12-03 85 views
0

我這些實體類(簡體):實體框架流利的映射外鍵

public class MyClass 
{ 
     int Id {get;set;} 
     int MyObjectId {get;set;} 
     MyObject MyObject {get;set;} 
} 

public class MyObject 
{ 
     int Id {get;set;} 
     string Name {get;set;} 
     ICollection<MyClass> MyClass {get;set;} 
} 

流利的映射

HasRequired(x => x.MyObject).WithMany(x => x.MyClass) 
    .HasForeignKey(x => x.MyObjectId).WillCascadeOnDelete(false); 

我剛開始學習EF,所以我有兩個問題

我是否可以避免使用MyObjectId來告知EF如何映射事物,或者是否應該在MyClass內取消MyObject類,並使用MyObjectId代替,並且每當我需要表格中的嵌套數據時,我應該通過MyObjectId將它拉出來?在這一點上,兩者都不合適。

流利的API,要求我必須參考MyObjectMyClass只是指定WithMany財產,我其實並不需要從MyObject訪問MyClass - 任何指導?

我想我用NHibernate的...

+0

你有沒有遇到'[ForeignKey]'屬性? – ColinM

+0

是的,但我問的是流暢的api的東西,是使用它的缺點? – Raimonds

+0

你的問題涉及到查詢或創建數據庫? – Sam

回答

2

在這裏看到的文檔:

Entity Framework fluent mapping foreign key

請參閱「重命名外鍵未在模型中定義的」

順便說一句,我試着定義我的模型只有導航屬性(沒有FK)。我不記得爲什麼我放棄了這個,但是我遇到了問題,並且把FK放在了我所有的實體上。這只是我的經驗,別人可能會以不同的方式告訴你。