我有一个班级单位(例如公司)与其他单位有许多关系。 我无法更改数据库结构。 db类似于:
Units:
UnitID
UnitName
...
UnitToUnitRelationships:
FromUnitID
ToUnitID
RelationshipType
我需要在查询时限制RelationshipType。我目前有一个带有ISet ChildUnits和ISet ParentUnits的Unit类(因为在不同的关系类型下你可能有不同的父母)。我不需要在我的域中使用RelationshipType;我只会关注一种特殊的类型。如果我正在编写自己的SQL,我只需确保RelationshipType='FOO'
或ON
子句中的所有查询都WHERE
。
我正在使用Fluent进行映射;我现有的子映射看起来像这样:
HasManyToMany(x => x.ChildUnits).AsSet().Cascade.None().
Table("UnitToUnitRelationships").Not.LazyLoad().Fetch.Subselect().
ParentKeyColumn("ToUnitID").ChildKeyColumn("FromUnitID").BatchSize(1000);
我想我可能需要创建一个UnitToUnitRelationship
课并且弄乱它,但如果有更简单的方法,我当然更喜欢这个,特别是因为如上所述,我不需要我的属性域。
答案 0 :(得分:1)
您应该查看.Where()
和/或.ChildWhere()
方法
.Where()
适用于参考表.ChildWhere()
适用于子表因此,我认为您应该使用.Where("RelationshipType='FOO'")
来解决您的问题。