如何从具有未知类型和 id 的会话中获取对象

本文关键字:id 会话 取对象 获取 类型 未知 | 更新日期: 2023-09-27 18:31:19

我要做的是从会话中获取对象数据。

下面的代码应该清楚地说明所有内容:

//Type of object which i need to get in runtime
Type someUnknownType = typeof(someObject);
int id = 1; // for example
// here i got error cannot resolved someUnknownType
ISession.Get<someUnknownType>(id);

我该怎么做?

编辑: someObject是实例变量。

如何从具有未知类型和 id 的会话中获取对象

首先,你有一个错误:

  • 如果someObject是实例变量,则无法调用 typeof(someObject) 。您只能拨打someObject.GetType()
  • 如果是类型,则仍使用泛型版本。

您是否尝试使用非通用版本:

object x = ISession.Get(someObject.GetType(), id);

您需要使用此 Get 方法:

ISession.Get(Type, Object);

以下是NHibernate文档中的示例:

Cat cat = (Cat) sess.Get(catInstance.GetType(), id);