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 關注
- 376 瀏覽
添加回答
舉報
0/150
提交
取消