使用引用继承属性的 lambda 在 Fluent NHibernate 映射中应用过滤器?

2024-01-18

有没有办法在流畅的 nhibernate 映射文件中指定一种仅有条件地将值拉入业务实体的方法?

我当前的映射片段是:

            HasMany(m => m.GroupUsers)
            .Table("GroupUsers")
            .KeyColumns.Add("UserEntityId")
            .Inverse()
            .Cascade.All();

理想情况下,我希望有这个(它编译但抛出 gu 未定义的运行时错误):

            HasMany(m => m.GroupUsers)
            .Table("GroupUsers")
            .KeyColumns.Add("UserEntityId")
            .Where(gu => gu.DeleteDate == null)
            .Inverse()
            .Cascade.All();

问题的关键是我希望映射仅拉回那些具有空删除日期的组用户条目。

编辑:删除日期位于基类上


来自 FluentNhibernateAPI文档 http://fluentnhibernate.org/api/FluentNHibernate.Mapping/ToManyBase%603.htm#Where:

TWhere(表达式>where)

设置此一对多关系的 where 子句。注:这个 仅支持简单情况,对于更复杂的情况请使用字符串重载 条款。

它似乎过滤基类属性属于“复杂”案件。

所以你应该使用Where(String)重载(我还没有测试语法...):

HasMany(m => m.GroupUsers)
            .Table("GroupUsers")
            .KeyColumns.Add("UserEntityId")
            .Where("DeleteDate is null")
            .Inverse()
            .Cascade.All();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用引用继承属性的 lambda 在 Fluent NHibernate 映射中应用过滤器? 的相关文章

随机推荐