我正在寻找解决我的问题的方法,但我得到的只是发生这种情况的原因,而不是防止发生这种情况。
我有一个类,WorkflowActivityInstance
它有一个集合WorkflowActivityInstanceTransitions
,代表工作流状态的转换。转换被映射在一个Transitions
属性中。
因此:WorkflowActivityInstance
<--WorkflowActivityInstanceTransition
我想要一个对象视图,它会给出WorkflowActivityInstance
包括其当前状态在内的状态,这只是最新的,而无需用户编码器对属性WorkflowActivityInstanceTransition
执行自己的排序和选择。Transitions
最初,我有:
public virtual IWorkflowActivityInstanceTransition CurrentState
{
get { return Transitions.OrderBy(q => q.TransitionTimeStamp).LastOrDefault(); }
}
但我只是得到:
NHibernate.InvalidProxyTypeException:NHibernate.InvalidProxyTypeException:以下类型不能用作代理:FB.SimpleWorkflow.NHibernate.Model.WorkflowActivityInstance:方法 CurrentState 应该是“公共/受保护的虚拟”或“受保护的内部虚拟”。
我试图厚脸皮并将其转换为一种方法:
public IWorkflowActivityInstanceTransition GetCurrentState()
{
return Transitions.OrderBy(q => q.TransitionTimeStamp).LastOrDefault();
}
但我得到一个非常相似的:
NHibernate.InvalidProxyTypeException:NHibernate.InvalidProxyTypeException:以下类型不能用作代理:FB.SimpleWorkflow.NHibernate.Model.WorkflowActivityInstance:方法 GetCurrentState 应该是“公共/受保护的虚拟”或“受保护的内部虚拟”。
我想CurrentState
在我的模型类中保留非常简单的行为,并防止 NHibernate 超出自身范围并尝试映射/代理此属性。感觉这应该只是我不想映射的属性的一个属性......
我怎样才能做到这一点?