映射连接流畅的nhibernate

时间:2014-06-27 09:46:54

标签: nhibernate orm fluent-nhibernate

我正在使用代表层次结构的遗留数据库。对象表示如下(简化版):

class Key 
{
     public virtual int id { get; set; }
     // more properties
}

class Leaf
{
     public virtual int id { get; set; }
     public virtual Key key { get; set; }
     public virtual Key parent { get; set; }
}

class Branch
{
    public virtual int id     { get; set; }
    public virtual Key key    { get; set; }
    public virtual Key parent { get; set; }
}

上面的映射显然是" key"被映射为密钥表的外键。

Leaf和Branch之间没有直接关系。实际上,通过密钥 Leaf 分支具有多对一关系。因此,一个叶子只能有一个父项,而分支也可以只有一个父项。

我想提供一个连接映射,以便我可以将 ParentBranch 属性提供给类Leaf,这样我就可以访问分支。

Leaf leaf;
Branch branch = leaf.ParentBranch;

查询可以写成

            var parent = session.QueryOver<Branch>()
                .Where(br => br.key == leaf.parentKey)
                .SingleOrDefault();

有没有办法将查询映射到nhibernate / fluent nhibernate中的 Leaf.Parent ?作为遗留数据库,现在无法简化模式。

这些物体的持久性也是一个挑战。但我认为,这将是一个单独的问题。

0 个答案:

没有答案