友人が、計算列、Entity Framework、および Breeze に関する問題を報告しました
データベースによって計算された「FullName」列を持つテーブルがあります。新しい を作成するとき、プロパティ値がまったく設定されていない場合でも
Person
、Breeze はプロパティ値をサーバーに送信し、新しいインスタンスを挿入しようとするとエラーが発生します。データベースは次の例外をスローします。FullName
Person
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; 設定;} ... }
この質問への回答は、問題を説明し、解決策を提供します。