友人が、計算列、Entity Framework、および Breeze に関する問題を報告しました
データベースによって計算された「FullName」列を持つテーブルがあります。新しい を作成するとき、プロパティ値がまったく設定されていない場合でも
Person、Breeze はプロパティ値をサーバーに送信し、新しいインスタンスを挿入しようとするとエラーが発生します。データベースは次の例外をスローします。FullNamePerson
The column "FullName" cannot be modified because it is either a computed column or is the result of a UNION operator.
以下は、SQL テーブル定義の関連部分です。
CREATE TABLE [dbo].[人](
[ID] [bigint] IDENTITY(1,1) NOT NULL,
[名前] [varchar](100) NULL,
[ミドルネーム] [varchar](100) NULL,
[姓] [varchar](100) NOT NULL,
[FullName] AS ((([Patient].[LastName]+',') + isnull(' '+[Patient].[FirstName],'')) + isnull(' '+[Patient].[MiddleName] ,'')),
...
友人によると、対応する「Code First」クラスは次のようになります。
パブリック クラス Person {
public int ID {get; 設定;}
パブリック文字列 FirstName {get; 設定;}
public string MiddleName {get; 設定;}
public string LastName {get; 設定;}
パブリック文字列 FullName {get; 設定;}
...
}
この質問への回答は、問題を説明し、解決策を提供します。