TotalAmount
列が columns から計算された列であるテーブルがあるAmount+Extra
ので、このテーブルで Entity Framework を使用すると、この計算はどのように機能しますか?
ありがとう。
TotalAmount
列が columns から計算された列であるテーブルがあるAmount+Extra
ので、このテーブルで Entity Framework を使用すると、この計算はどのように機能しますか?
ありがとう。
さらに、marc_s による応答に加えて、オブジェクトを保存してからデータベースから更新しない限り、EF エンティティの基になるプロパティを変更しても値が再計算されないことに注意することが重要です。別の言い方をすれば、C# オブジェクトのプロパティは、データベースからの計算を実装していません。
計算列は、(a) アクセスするたびに再計算されるか、(b)PERSISTED
キーワードで定義した場合は、テーブルのデータ ページに実際の列が作成され、そこに値が格納されます。
いずれにせよ、Entity Framework に対しては、両方の種類の計算列が通常の列と同じように動作する必要があります。Entity Framework がテーブルにアクセスしてそこからデータを読み取る場合、現在の値を取得TotalAmount
し、エンティティの対応するプロパティに格納する必要があります。
データベースから ADO.NET Entity Data Model を作成すると、EF は列が計算列であることを検出するため、そのプロパティに新しい値を設定することはできません (明らかに)。