1

我的 edmx 模型中有一个 one 实体,它具有一个可以包含大量 XML 数据的属性。

基本上我想在没有这个属性(列)的情况下加载这个实体 /* 大量数据加载 */ 。并且仅在严格需要时才加载此列。

我试图创建一个包含此属性的继承实体并从基础实体(原始实体)中删除此属性。我已经完成了映射。此时我有问题,在编译过程中出现错误,该基本实体无法插入和更新自身,因为属性不可为空

我正在寻找如何解决这种情况的最佳方法(解决方案)。

我正在附上我的 emdx 设计师的剪纸(包含我当前和所需的情况)

实体框架视图

更新:

我将尝试编写一个我尝试过的过程:我将函数映射到我的自定义函数。对于没有 XML 列(属性)的实体 TRP_TechReport_T。然后我只是将实体 TRP_TechReport_T 函数映射到我的自定义函数(包含 XML 列)。

然后我在实体 TRP_TechReport_T 上设置映射条件:When TRP_XML = Empty.String

TechReport_T 映射: 技术报告映射

TechReport_T 功能: 在此处输入图像描述

TechReportFull_T 映射: 实体 TechReportFull_T 映射

TechReportFull_T 函数: TechReportFull_T 函数

此时我收到错误:

错误 2 错误 3032:从第 3754 行开始映射片段时出现问题:条件成员 'TRP_TechReport_T.TRP_XML' 的条件不是 'IsNull=False' 被映射。删除 TRP_TechReport_T.TRP_XML 上的条件或将其从映射中删除。

该列在数据库中不能为空,也不能为空。

我可以将 XML 属性硬设置为可为空,但在从数据库更新模型的情况下,信息将丢失。

目前,这是我唯一能想到的。

4

0 回答 0