コードファーストで列をマップする方法はありますか?それは選択時に移入されますが、挿入または更新時には使用されません。インサートから列を除外する
[NotMapped]注釈を適用した場合、プロパティ/列には値が設定されませんが、この注釈を追加しないと、挿入時に列が存在しないというエラーが表示されます。
理由私は、クエリを実行して結合を実行し、列の値を返すことを尋ねますが、挿入時にこの列は必要ありません。
任意のアイデアですか?
乾杯
編集:私はやっているものをもう少し詳細に説明する
だけ更新。
は以前、私は、2つのテーブルを持っていた
Carer
CarerID
UserID
IsPrimary
User
UserID
しかし、その後、それは介護者が複数のユーザーに属することができることを要求されたので、私は以下のように、リンクテーブルを作成する必要がありました。
UserCarer
UserCarerID
UserID
CarerID
IsPrimary
、私は一時的にこれを解決した方法です私は何をしたくなかったし、値を取得するために別のコンテキストを初期化し、私のエンティティ内のメソッドを作成することです。
代わりに、私は私がデータを選択したとき、私は左を実行するだろうと期待していたは、このように私はselect * from Carer.*, UserCarer.IsPrimary from Carer left join UserCarer on Carer.CarerID = UserCarer.CarerID where UserCarer.UserID = @p0
すなわちCarer.IsPrimary
への参照を保持することができUserCarerテーブルからIsPrimary
値を取得するために参加しますHTH
@Ladislavが言ったことの上に - あなたは何か間違っているように見えますが、私は妥当な使い方を考えることができません。それはあなたが必要とする列か、そうでないかのどちらかです。もし計算されたら、linqとprojectをLadislavが言ったように使用してください。必要な場合は、その値を入力します(「デフォルト」を使用し、db側で指定する必要がある場合は計算します)。そして、インパクトが非常に低いインサート(必要でない場合)に「ヌル」のままにすることができます。つまり、私たちにもっと多くのデータを与える必要があります。 – NSGaga
ありがとう@NSGaga、私はEFがそれほど簡単ではなく、左の結合からデータを返すカスタムクエリをサポートできることを期待していました。本当に、必要なのは、プロパティが結果セットに存在し、挿入または更新に含まれていない場合は、プロパティを移入するだけです。再度、感謝します。 – Gavin