本帖最后由 fihuang 于 2010-01-05 16:18:50 编辑

解决方案 »

  1.   

    如果持久层 是用框架实现的  如 nhibernate 配置一下配置文件就好如果是自己写的 建议  TopicReply left join User 可以做成view 放到数据库里 这样 只是取一下 这个view就好或者 存储过程之类的 xxxxx 持久层不用写太具体 就提供个 按照命令执行 sql 语句/存储过程 或者 返回 集合/table  之类的就行
      

  2.   

    数据层的方法应该返回dataset还是直接返回实体类?
      

  3.   

    在实体类中定义实体类属性为外键
    通过A.B.ID获取相关数据
      

  4.   

    返回DataSet,不知道你所谓的实体类是什么概念?是一个包含dataset数据的类?如果此实体类只包含这个数据,也没什么意思,如果还包含操作数据的方法,那就更没必要返回实体类了.
      

  5.   

    这种要求很常见,用DataSet和对象都有不好的地方。
    我采用的办法是,给对象扩展一个子类用于显示。
    比如说对象的定义可能是:public class TopicReply{
      public int ID;
      public int ReplyUserID;
      public string Title;  
      public string Content;
      ...
    }那么再定义一个类:public class TopicReplyView : TopicReply
    {
      public string ReplyUserName;
      public string ReplyUserSign;
      ...
    }查询的时候通过left join得到TopicReplyView。
    一般来说一个对象会有一个View,有些可能需要定义多个View。