public List<Model.ToDo> GetList(string strWhere) { StringBuilder strSql = new StringBuilder(); strSql.Append("SELECT * FROM ToDoList "); if (strWhere.Trim() != "") { strSql.Append(" WHERE " + strWhere); } strSql.Append(" ORDER BY ID DESC "); List<Model.ToDo> models = new List<Model.ToDo>(); using (SqlDataReader dr = SQLHelper.ExecuteReader(Util.Conn, strSql.ToString())) { while (dr.Read()) { models.Add(GetModel(dr)); } } return models; } 这个是单表,单model,如果sql语句改成strSql.Append("SELECT * FROM ToDoList ");strSql.Append("JOIN Customer ON Customer.ID=ToDoList.CustomerID ");链接了另外一个表,这种情况怎么用泛型实现?
2 回答
浮云间
TA贡献1829条经验 获得超4个赞
其实你在设计Model.ToDo时候就应该将Model.ToDo中包含对于Customer引用,可以作为属性提供,那么你在这里就可以一次完成,实际上属于建模问题
回首忆惘然
TA贡献1847条经验 获得超11个赞
这种问题我一般使用一些额外的属性,比如有一个Acticle的model , 往往文章作者可能只存了一个AuthorId, 那么我除了在Acticle里面包含 文章表的所有字段外还会再加一个AuthorName的属性, 这样通过联表查询后只需要给该字段赋值就可以取得作者的名字, 还有一个办法就是建一个视图,绑定这个视图的泛型List 也可以解决问题, 另外可以考虑楼上的做法,包含一个对其它model的引用, 可以使用 aticle.author.AuthorName来访问或者aticle.tags(这里tags是List<Tag>)
随便说一句,象这种没几个string连接的就不要用StringBuiler了,直接连接即可,StringBuilder初始化也是要时间的.
- 2 回答
- 0 关注
- 352 浏览
添加回答
举报
0/150
提交
取消