42、利用 QueryView 和存储过程优化数据映射与查询

利用 QueryView 和存储过程优化数据映射与查询

1. QueryView 的常见用例

QueryView 存在一些使用限制。当用于与其他实体存在关联或处于层次结构中的实体时,情况会变得复杂。不过,由于 QueryView 生成的实体是只读的,它非常适合创建用于数据视图的新实体,可用于应用程序中的选择列表。

例如,企业常需要提供客户姓名和 ID 的列表,用于应用程序中的客户选择元素,如下拉列表。虽然可以使用投影来创建此列表,但会产生匿名类型或 DbDataRecords,不便于传递和使用。而 QueryView 能实现投影的效果,还能返回实体,该实体在模型和生成的类中是已知类型,且可与其他实体隔离,无需担心关联和继承问题。

2. 创建 CustomerNameAndID 实体

在使用 QueryView 之前,需要在模型中创建一个实体来封装 QueryView 的结果:
1. 在模型中创建一个新实体。
2. 在“添加实体”对话框中,将新实体命名为 CustomerNameAndID,并保留默认的键属性设置。
3. 为新实体添加两个标量属性:FirstName 和 LastName。默认情况下,新的标量属性为字符串类型且不可为空,可保留这些新属性的默认属性。

这里使用两个属性有些不便,本想只展示 FullName,但 QueryView 不允许使用任何类型的函数,包括字符串拼接。已向相关团队建议在未来版本中添加此支持。

3. 创建 CustomerNameAndID 的 QueryView 映射

需要在模型文件的 XML 映射层中手动定义 QueryView:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值