父>子关系与父>组>子关系



我有一个遗留数据库(仍由另一个遗留应用程序使用),其中的组被非规范化并复制到子行中

table parent
(
  id
)
table child
(
  id
  parent_id
  group_id
  group_name
  group_Flag
  group_type
  name
)

我想把它们映射到

class Parent
{
    public long Id { get; private set; }
    public ICollection<Group> Groups { get; private set; }
}
class Group
{
    public long Id { get; set; }
    public string Name { get; set; }
    public GroupType Type { get; set; }
    public bool Flag { get; set; }
    public ICollection<Child> Childs { get; private set; }
}
class Child
{
    public long Id { get; private set; }
    public string Name { get; set; }
}
  1. 这可能吗
  2. 如何在NHibernate的任何映射方法(xml、MbC、Fluent…)中做到这一点

更新:一些附加信息

  • 由于遗留应用程序的原因,无法更改架构
  • 数据库中的其他视图是一个选项
  • 类模型可能发生泄漏

以下是一些启动程序:

您可以尝试查看NHibernate参考的"映射集合"部分:-http://nhibernate.info/doc/nh/en/index.html#mapping-申报集合

然后,您可以尝试使用集合映射的"where"子句来映射Parent类的Groups属性:

(9) 其中(可选)指定检索或删除集合时要使用的任意SQL where条件(如果集合应仅包含可用数据的子集,则此条件很有用)

并以相同的方式映射Group类的Childs属性。

否则,您可以创建一些视图来以不同的方式显示数据,并将对象映射到这些视图(将update="false"和insert="false"设置为标识符属性映射)

相关内容

  • 没有找到相关文章

最新更新