Nhibernate 家长->;子女与父母的关系->;集团->;小孩
我有一个遗留数据库(仍由另一个遗留应用程序使用),其中组被反规范化并复制到子行中Nhibernate 家长->;子女与父母的关系->;集团->;小孩,nhibernate,fluent-nhibernate,nhibernate-mapping,fluent-nhibernate-mapping,Nhibernate,Fluent Nhibernate,Nhibernate Mapping,Fluent Nhibernate Mapping,我有一个遗留数据库(仍由另一个遗留应用程序使用),其中组被反规范化并复制到子行中 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<Grou
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; }
}
类父类
{
公共长Id{get;private set;}
公共ICollection组{get;private set;}
}
班级
{
公共长Id{get;set;}
公共字符串名称{get;set;}
公共GroupType类型{get;set;}
公共布尔标志{get;set;}
公共ICollection子项{get;private set;}
}
班童
{
公共长Id{get;private set;}
公共字符串名称{get;set;}
}
- 由于旧应用程序的原因,无法更改架构
- 数据库中的其他视图是一个选项
- 类模型中可能存在泄漏
- 以下是一些入门课程:
您可以尝试查看NHibernate参考的“映射集合”部分:
-
然后,您可以尝试使用集合映射的“where”子句映射
父类的组
属性:
(9) 其中(可选)指定检索或删除集合时要使用的任意SQL where条件(如果集合应仅包含可用数据的子集,则此条件非常有用)
并以相同的方式映射组的Childs
属性
否则,您可以创建一些视图以不同的方式显示数据,并将对象映射到这些视图(将update=“false”和insert=“false”设置为标识符属性映射)我应该在组的where中放置什么?组xxx列对于每个孩子都是相同的,每个家长的子id是未知的/不同的。如果我有我的视图组(组id,家长id)
我如何向其中添加新组?请在您的问题中陈述您的所有要求,否则很难为您的问题提出正确的解决方案:)谢谢您的时间。需求在问题中,它将2个表映射到3个实体,它们之间有1-n个关联。我的评论只是为了澄清你的答案。