各位高手:
有一个问题我一直不知道怎么处理比较好,问题描述如下:
比如有两个表,表A和表B,他们间有一个字段关联为FieldComm,他们分别对应两个实体类 ModelA和ModelB;页面需要显示表A的一个字段信息FieldA和表B的一个字段信息FieldB,查询条件的字段在表B中,也就是说根据表B获取数据。
问题就在这里,现在是先返回ModelB实体对象,然后在根据ModelB.FieldComm获取ModelA对象,最后将所有信息显示出来 比较好呢? 还是 通过表连接查询 返回数据比较好呢? 如果通过表连接返回数据 那么返回的实体对象怎么表示呢? 还有如果返回的数据比较少,比如只需要两个字段的信息,大家是采用返回实体对象还是直接返回变量?
求高手解惑,谢谢了!
写一个ModelC好了
public class ModelC {
public ModelA A { get; set; }
public ModelB B { get; set; }
}
使用联结查询返回结果集,返回的对象为ModelC的对象,填充ModelC中的A和B属性就相当于你已经拥有了全部的内容
你最好在数据库中建立一个视图,这比联合查询要好很多。
也可以为视图建立一个实体类,这就视需要而定吧。
如果你的ORM用的是Entity Framework的话,可以使用Include方法直接加载需要关联的实体,具体参考此文:http://www.cnblogs.com/xray2005/archive/2009/06/08/1499005.html
通过表连接查询 返回数据比较好呢? 如果通过表连接返回数据 那么返回的实体对象怎么表示呢? 还有如果返回的数据比较少,比如只需要两个字段的信息,大家是采用返回实体对象还是直接返回变量?
1,当然是连接查询了,你可以再定义一个实体类(继承A,或者B),然后扩展几个你在另一类中需要的内容
如果返回数据比较少,你同上操作,多几个字段没有关系的,还是返回你新建的实体类
我感觉表链接在数据量很大的时候速度会受影响。用视图或者存储过程吧。为视图或者存储过程建立实体类。