疑问描述如下:
类库Dal,包含了唯一的EDMX文件(EF实体框架),EDMX中含有类USER。
底层业务支持层 BaseDataLayer,引用了Dal。其中有方法
public USER GetUser();
业务层BusinessLayer,引用了BaseDataLayer的方法GetUser,但无法使用该方法返回的USER类型。个人这样分层的目的是想将底层的对象模型ORM完全与业务层隔离,但不知道如何可以使用业务支持层返回的类型。又,在WebService中,这样的场景似乎是允许的,可以使用“服务引用”中定义的类型,但不知道为何一般类库引用的场景下不允许,该如何实现呢?盼解答。

解决方案 »

  1.   

    用automapper,自动映射USER和业务支持层返回的类型
      
    *****************************************************************************
    签名档: http://feiyun0112.cnblogs.com/
      

  2.   

    各位表达的意思我都没太理解,个人想这么做的原因是试图尝试soa的形式,将对外暴露指定的服务,而数据模型层对业务层及更外层完全隔离。还有朋友能更详细些的指教一下么?
      

  3.   

    各位表达的意思我都没太理解,个人想这么做的原因是试图尝试soa的形式,将对外暴露指定的服务,而数据模型层对业务层及更外层完全隔离。还有朋友能更详细些的指教一下么?
      

  4.   

    谁说面向服务要隔离数据模型的?真要隔离,不如用DataTable。
      

  5.   

    user对象 => 替代数据 => user对象,这叫隔离?
      

  6.   

    包指dll?不管你要分离什么,至少需要公用某个抽象。
      

  7.   

    当然这个抽象不一定包含在某个dll中,也许是某种个性化的或者通用的协议。
      

  8.   

    好吧,那么先不考虑这样做的目的。纯粹的提问,假定就是这样的场景 A.DLL,B.DLL,C.DLL,
    A被B引用,B被C引用,C可以使用B中方法返回的,在A中定义的类型么?