linq to entity绑定gridview要修改其中一个字段属性
表User有UserID和RoleID两个字段,表Role有RoleID和RoleName两个字段,我现在要将UseID和RoleName绑定到gridview,怎么设计啊??
1.为提高查询效率,数据库没有外键,所以不能用导航属性
2.我用的是三层结构,所以不能这样写:
var query = from u in db.User join r in db.Role on u.RoleID equals r.RoleID select new {UserID=u.UserID,RoleName=r.RoleName};
因为在层与层之间调用还是用的实体对象,如果使用上述代码,我要定义新的对象,才能传输数据,工作量太大。
要实现这种样子,有什么好的方法或者思路么????急!
------解决方案-------------------- 不论是三层还是MVC MVP
查询使用匿名类,都是不可取的
三层中在BL层这样写:
var query = from u in db.User join r in db.Role on u.RoleID equals r.RoleID select new MUsers{UserID=u.UserID,RoleName=r.RoleName};
Model层定义MUsers class
------解决方案--------------------
肯定要定义一个对象保存数据啊
------解决方案-------------------- 选择得到查询的条件,查询出来的结果用集合保存,喜欢当前结果集合,修改指定字段的值,提交修改,在LINQ中一般都是这样子做的,如果你不查,orm根本就不知道你的对象是哪一个,或者他会直接认为你的对象是一个新的对象了。
------解决方案--------------------再写个ViewModel是最好的选择!