3

TotalAmount列が columns から計算された列であるテーブルがあるAmount+Extraので、このテーブルで Entity Framework を使用すると、この計算はどのように機能しますか?

ありがとう。

4

2 に答える 2

3

さらに、marc_s による応答に加えて、オブジェクトを保存してからデータベースから更新しない限り、EF エンティティの基になるプロパティを変更しても値が再計算されないことに注意することが重要です。別の言い方をすれば、C# オブジェクトのプロパティは、データベースからの計算を実装していません。

于 2012-09-27T17:24:05.913 に答える
2

計算列は、(a) アクセスするたびに再計算されるか、(b)PERSISTEDキーワードで定義した場合は、テーブルのデータ ページに実際の列が作成され、そこに値が格納されます。

いずれにせよ、Entity Framework に対しては、両方の種類の計算列が通常の列と同じように動作する必要があります。Entity Framework がテーブルにアクセスしてそこからデータを読み取る場合、現在の値を取得TotalAmountし、エンティティの対応するプロパティに格納する必要があります。

データベースから ADO.NET Entity Data Model を作成すると、EF は列が計算列であることを検出するため、そのプロパティに新しい値を設定することはできません (明らかに)。

ここに画像の説明を入力

于 2012-09-27T17:21:39.787 に答える