Entity Framewok中获取实体对象的部分属性
2009-06-25 20:57
344 查看
因为在设计中的遗漏,把一个视图中包含大量Null值的列设定为了主键,导致在查询的时候,会把所有主键为Null值的对象都映射为第一条Null值的数据……噩梦……
因此,我需要获取数据的时候只取部分属性,把主键列屏蔽掉。写法稍有点复杂,做个标记:
IList<SAPUserView> l =
SAPUserViews.Select(b=> new { LogonID = b.LogonID, EmployeeNo = b.EmployeeNo, NickName = b.NickName }).ToList()
.Select(r=>new SAPUserView() { LogonID = r.LogonID == null ? String.Empty: r.LogonID, EmployeeNo = r.EmployeeNo, NickName = r.NickName}).ToList();
需要留意的是为什么不第一次Select方法的时候就直接Select(b=>new SAPUserView(){...}:具体原因不详,但是那样写会抛出异常:
NotSupportedException: The entity or complex type 'WorkFlowDBModel.SAPUserView' cannot be constructed in a LINQ to Entities query.
必须转换为匿名类型的集合后重新Select一次。
因此,我需要获取数据的时候只取部分属性,把主键列屏蔽掉。写法稍有点复杂,做个标记:
IList<SAPUserView> l =
SAPUserViews.Select(b=> new { LogonID = b.LogonID, EmployeeNo = b.EmployeeNo, NickName = b.NickName }).ToList()
.Select(r=>new SAPUserView() { LogonID = r.LogonID == null ? String.Empty: r.LogonID, EmployeeNo = r.EmployeeNo, NickName = r.NickName}).ToList();
需要留意的是为什么不第一次Select方法的时候就直接Select(b=>new SAPUserView(){...}:具体原因不详,但是那样写会抛出异常:
NotSupportedException: The entity or complex type 'WorkFlowDBModel.SAPUserView' cannot be constructed in a LINQ to Entities query.
必须转换为匿名类型的集合后重新Select一次。
相关文章推荐
- java中将实体的值传输到mybatise后无法获取到对象中属性的值
- JavaScript函数之实际参数对象(arguments) / callee属性 / caller属性 / 递归调用 / 获取函数名称的方法
- SSH:如何让Hibernate的HQL只返回部分属性的对象(POJO)集合?
- 反射方式获取JPA Entity的属性和值
- [JQuery] jQuery选择器ID、CLASS、标签获取对象值、属性、设置css样式
- 谷歌浏览器不支持javascript 属性对象获取问题
- SpringMVC 开发过程问题总结-, 实体关系映射对象属性要用包装类Integer, Long ,Double
- 反射获取对象属性
- Lamda表达式,map快速获取对象的某一个属性生成集合
- Google Maps API一例错误处理 SCRIPT5007: 无法获取属性“firstChild”的值: 对象为 null 或未定义 main.js
- C#中的PropertyGrid绑定对象,通过改变某一值而动态设置部分属性的特性
- 自动截取Entity实体属性中字符串超长字符
- 金蝶BOS,通过ID,获取动态单据对象,无需知道实体类型
- 获取.net对象的属性集
- 【.Net码农】C#获取实体类属性名和值 | 遍历类对象
- 获取部分系统的属性
- Ext发起ajax请求获取返回对象属性值
- javascript获取函数名称、函数参数、对象属性名称的代码实例
- js 获取函数的所有参数和遍历JavaScript某个对象所有的属性名称和值的方法
- js向body创建对象、对象属性、对象事件,js获取元素坐标、元素边框大小、真实大小