edmx モデルに 1 つのエンティティがあり、巨大な XML データを含むことができる 1 つのプロパティがあります。
基本的に、このプロパティ (列) /* 巨大なデータの読み込み */ なしで、このエンティティを読み込みたいと考えています。そして、この列は絶対に必要な場合にのみロードしてください。
このプロパティを含む継承されたエンティティを作成し、このプロパティを基本エンティティ (元のエンティティ) から削除しようとしました。マッピングを行いました。現時点では、コンパイル中にエラーが発生するという問題があります。プロパティがnull可能ではないため、基本エンティティはそれ自体を挿入および更新できません
この状況をどのように解決すべきか、最善のアプローチ(解決策)を探しています。
emdx デザイナーからのカットアウトを添付します (現在および望ましい状況を含む)
アップデート:
私が試した手順を書いてみます: 関数をカスタム関数にマップしました。XML 列 (プロパティ) のないエンティティ TRP_TechReport_T の場合。次に、エンティティ TRP_TechReport_T 関数をカスタム関数 (XML 列を含む) にマップしました。
次に、エンティティ TRP_TechReport_T にマッピング条件を設定します。TRP_XML = Empty.String の場合
TechReport_T マッピング:
TechReport_T 関数:
TechReportFull_T マッピング:
TechReportFull_T 関数:
この時点でエラーが発生します:
エラー 2 エラー 3032: 行 3754 で始まるフラグメントのマッピングに問題があります: 条件メンバー 'TRP_TechReport_T.TRP_XML' が 'IsNull=False' 以外の条件でマップされています。TRP_TechReport_T.TRP_XML の条件を削除するか、マッピングから削除してください。
列はデータベースで NULL 可能ではなく、そうであってはなりません。
XML プロパティを null 許容にハード設定することはできますが、モデルがデータベースから更新される場合、情報が失われます。
現時点ではそれしか思い浮かびません。