wal*_*pus 6 .net nhibernate fluent-nhibernate
在我的数据库中有表Assignment和Workplace,从概念上讲,每个作业都在一个工作场所进行.该分配表中包含一列工作场所,这是一个外键引用的职场表的WorkplaceName列.
这是架构:
table Workplace (
ID int primary key,
WorkplaceName int
)
table Assignment (
Workplace int
)
Run Code Online (Sandbox Code Playgroud)
我的映射:
class Workplace
{
public virtual int ID { get; set; }
public virtual int WorkplaceName { get; set; }
}
class Assignment
{
public virtual Workplace { get; set; }
}
class AssignmentMap : ClassMap<Assignment>
{
public AssignmentMap()
{
References(a => a.Workplace);
}
}
Run Code Online (Sandbox Code Playgroud)
在运行时我得到了异常
没有具有给定标识符的行[MyProject.Workplace#2001]
这里的问题似乎是FH 在Workplace.ID列中查找Assignment.Workplace属性的值,即表的主键; 正确的位置是Workplace.WorkplaceName列.我试过使用这个方法,以为我可以用这种方式指定WorkplaceName.如何告诉FH如何加入正确的列?ForeignName
我在这里找到了答案:FluentNHibernate Many-To-One References where外键不是主键并且列名不同
解决方案是使用PropertyRef
; 该行现在显示:
References(x => x.Workplace).PropertyRef(x => x.WorkplaceName).Fetch.Join();
Run Code Online (Sandbox Code Playgroud)
我没有意识到的是,我需要提供对客户端对象的属性WorkplaceName 的引用,而不是尝试指示映射使用服务器端列WorkplaceName。
归档时间: |
|
查看次数: |
512 次 |
最近记录: |