c#-如何防止Fluent NHibernate将“ Parent”表的FK添加到关系表中?
作者:互联网
我有实体:
public class Plugin
{
public virtual int Id { get; set; }
public virtual int Version { get; set; }
public virtual Plugin ParentPlugin { get; set; }
public virtual IEnumerable<Setting> Settings { get; set; }
}
public class Setting
{
public virtual int Id { get; set; }
public virtual Plugin Plugin { get; set; }
public virtual int Version { get; set; }
}
问题是,当我添加ParentPlugin时,它在数据库的Setting表中添加了ParentPlugin_Id.我不知道为什么要这么做,但是我想让设置只在数据库中有一个Plugin_Id而不是Plugin_Id和ParentPlugin_Id.
因此,我想知道2件得到赏金的事情:
1.如何从设置中删除ParentPlugin_Id引用?
2.为什么首先要这样做(链接到doc即可,我找不到一个可以解释这个问题的人)?
我正在使用Fluent Nhibernate的自动映射功能,大多数情况下都是默认设置.
解决方法:
通过指定确切的FK名称,我可以删除多余的ParentPlugin_Id.有点反感,必须添加FK而不是删除FK,但是…
.Override<Plugin>(m => m.HasMany(c => c.Settings).KeyColumn("Plugin_Id"))
对外键公约(https://github.com/jagregory/fluent-nhibernate/wiki/Auto-mapping)有更深入的了解来解决这个问题
标签:nhibernate,c,fluent-nhibernate 来源: https://codeday.me/bug/20191122/2062141.html