【发布时间】:2016-04-28 10:57:58
【问题描述】:
我有一个类User,在系统的核心模块中:
public class User
{
public virtual int Id {get; set;}
public virtual string Name {get; set; }
}
我还有一个类Company,它在系统的另一个模块中,没有对核心模块的引用:
public class Company
{
public virtual int Id {get; set;}
public virtual string Name {get; set; }
public virtual int OwnerUserId {get; set;}
}
如何创建 Company.OwnerUserId 的映射作为数据库中 User.Id 的外键?再次注意:此映射不能引用“用户”类。
【问题讨论】:
-
你为什么不用
Map(x => x.OwnerUserId)? -
那不会生成外键吧?
-
您是否使用 nhibernate 进行数据库迁移?
-
在申请中 - 没有。在测试中,我使用 nHibernate 来生成整个数据库。当然,我可以将它添加到应用程序或测试的迁移脚本中。但是我想知道是否对此有“本机”支持?
-
没有。每个模块只看到它的映射。但是,“用户”永远不会被删除(仅标记为“已删除”),因此外键引用是可接受的解决方案。
标签: c# nhibernate fluent-nhibernate database-migration fluent-nhibernate-mapping