我用流利的NHibernate和有2個實體:爲什麼流利的nhibernate automapping會創建許多外鍵而不是一個?
public class Document
{
public virtual int Id { get; protected set; }
public virtual string Name { get; set; }
public virtual User Author { get; set; }
public virtual DateTime Date { get; set; }
}
和
public class User
{
public virtual int Id { get; protected set; }
public virtual string Name { get; set; }
public virtual IList<Document> Docs { get; set; }
public User()
{
Docs = new List<Document>();
}
}
,我不明白爲什麼FNH創建這個simpliest實體錯誤的架構。這就是FNH創造了我的DB:
a busy cat http://i008.radikal.ru/1504/4b/25dcc9148f7e.png
我不明白爲什麼FNH創建2個引用(AUTHOR_ID和USER_ID)到用戶表,而不是一個單一的基準(僅AUTHOR_ID)。
我發現這裏的解決辦法Fluent Nhibernate AutoMapping -- 2 foreign keys to same table?這裏Fluent NHibernate Automappings generating 2 foreign keys for 1 relationship,但我不想使用它,因爲我不明白爲什麼我應該建立的每一件事情由我的手,如果我使用automappings應該做所有的工作對我來說(至少在我的實體中最簡單明顯的映射)。
**您正在映射一對多的關係以及另一方面的0對1的關係** - 不明白這一點。我有用戶作者的類文檔和用戶列表的文檔。我認爲這對用戶來說是1到1,對於Document來說是1到1。所以,我不明白你爲什麼說我有0比1和1比1. – user3649516
對不起,我沒有明白你的觀點。我現在得到它。 – Hellraiser
我修改了答案。希望能幫助到你 – Hellraiser