gpt4 book ai didi

c# - 如何查询特定类型的 NHibernate?

转载 作者:行者123 更新时间:2023-11-30 22:40:36 25 4
gpt4 key购买 nike

我使用 Fluent NHibernate 和 DiscriminateSubClassesOnColumn() 来支持子类化。用于区分子类的列未映射到实体的实际属性。

如何创建仅返回给定类型的实体的查询?

这是我的尝试,其中 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>();

返回猫和狗。

关于c# - 如何查询特定类型的 NHibernate?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5119432/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com