小编Kat*_*nis的帖子

在nhibernate中刷新实体的最佳方法是什么?

我想刷新一个实体及其所有子集合.做这个的最好方式是什么?我在谈论nhibernate :)

我已经阅读了session.Evict,session.Refresh ...

但我仍然不确定是否喜欢:

RefreshEntity<T>(T entity)
{
 session.Evict(entity);
 session.Refresh(entity);
}
Run Code Online (Sandbox Code Playgroud)

会完全按照我希望的方式工作

它会起作用吗?如果不是我还能做什么?

nhibernate session refresh nhibernate-mapping

18
推荐指数
1
解决办法
2万
查看次数

使用automapper有什么好处?

我的问题可能很愚蠢,但我很确定我会错过这个问题的一个非常重要的部分.我必须做一些对象到对象映射(在C#项目中使用的域类和发送到闪存客户端的类之间).

我的第一选择是Automapper.但我有一些问题(嵌套属性,而不是无定义的构造函数定义).事实证明,用automapper映射一个非常复杂的类型并不容易.

然后我的问题是:为什么不实现像这样的方法:

  ClassA GetClassAByClassB(ClassB pObj)

   {  
     ClassA objA = new ClassA();  
     objA.Prop1 = pObj.Prop1;  
     objA.NestedType.Prop2 = pObj.Prop2;  
     //....Some more.....  
     return objA;  
   }  
Run Code Online (Sandbox Code Playgroud)

它具有与使用Automapper完成的映射完全相同的灵活性.您仍然必须提供源对象中的哪个属性被复制到目标对象中的哪些属性.你只需使用'='而不是lambda表达式.

但是,如果您在域类中更改某些内容,则无论如何都必须更改此"映射"部分.那么说服我使用Automapper的主要原因是什么(正如我在开头说的那样,我很确定我错过了一些重要的东西).

mapping automapper object-object-mapping

6
推荐指数
3
解决办法
3120
查看次数