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

时间:2012-04-16 11:29:11

标签: c# .net nhibernate

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

下面的代码应该清楚所有:

//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是实例变量。

2 个答案:

答案 0 :(得分:3)

首先,你有一个错误:

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

您是否尝试过使用non-generic version

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

答案 1 :(得分:-1)

您需要使用此Get方法:

ISession.Get(Type, Object);

以下是NHibernate documentation

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