我用流利的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