我使用 Fluent NHibernate 和 DiscrimminateSubClassesOnColumn() 来支持子类化。用于区分子类的列未映射到实体上的实际属性。
如何创建仅返回给定类型实体的查询?
这是我的尝试,其中 propertyName 是我的区分列的名称, value 是类型名称:
return _db.CreateCriteria<T>()
.Add(Restrictions.Eq(propertyName, value))
.List<T>();
然而,这给了我错误“无法解析属性:类型:[我的实体类型]”,这是因为实体本身没有该属性。如果我将该属性添加到我的实体并映射它,我会收到另一个错误:“System.IndexOutOfRangeException:此 SqlParameterCollection 的索引 7 与 Count=7 无效。”
将类型传递给泛型参数 T。例如,如果 Cat 和 Dog 扩展抽象类 Animal:
return _db.CreateCriteria<Cat>()
.List<Cat>();
返回所有猫
return _db.CreateCriteria<Animal>()
.List<Animal>();
返回猫和狗。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)