我在Model中写了一个UserModel.cs(用户信息),其中包含两个属性GroupID,RoleID(所在的组ID,所属角色ID)。
User是一个表,Group是一个表,Role是一个表
现在有个需求,读取用户列表,在列表中显示组名GroupName和用户名RoleName。
SQLServerDAL层的方法是public List <UserModel> GetList();
现在的问题是UserModel.cs是没有组名和用户名这两个属性的,只有GroupID,RoleID。
这时候,大家都是怎么处理的?
1. 在UserModel.cs里加上组名GroupName和用户名RoleName?
2. 再写一个OtherUserModel.cs,包含组名GroupName和用户名RoleName?public List <OtherUserModel> GetList();
3. 直接就返回List <UserModel>,然后再前台再根据GroupID读GroupName?
4. 其他,请大家说说!
并非表与实体一一映射就等于对象了,model主要的用意还是在于抽象对象
根据你的实际业务需求去描述一个对象,已体现oo的思想
如若你要采用一一对应的model,那么你就要考虑另外设计一个对于实体抽象的类
就像你提到的,需要新建一个user类,他能描述一个user的所有属性,这样才称之为对象
在UserModel.cs里加上组名GroupName和用户名RoleName?
推薦用這個.z這樣SQL語句也好弄點。查詢的次數也少點。
实体类应该是用户名或是组名这样的属性而不是用户ID或是组ID吧?
两章表之间的主外键关系,你可以在User类中添加Group对象和Role对象,就可以了,然后在DAL中当获取User对象时获取Group对象和Role对象,这样在界面上可以显示的