利用 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:
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



