資料を見てもわからないので、こちらで質問させていただきます。ブリーズはデータベース列のデフォルトをどのように処理しますか? データベースに必要な列がありますが、データベースの列定義でこれらに指定されたデフォルトの静的値もあります。通常、これらの列に null を挿入すると、新しいレコードがデフォルトになります。ただし、そよ風はデータベース列の既定値を認識していないようで、これらの列に null を持つエンティティは保存時に検証に失敗します。
ありがとう、マティアス
資料を見てもわからないので、こちらで質問させていただきます。ブリーズはデータベース列のデフォルトをどのように処理しますか? データベースに必要な列がありますが、データベースの列定義でこれらに指定されたデフォルトの静的値もあります。通常、これらの列に null を挿入すると、新しいレコードがデフォルトになります。ただし、そよ風はデータベース列の既定値を認識していないようで、これらの列に null を持つエンティティは保存時に検証に失敗します。
ありがとう、マティアス
これは現在利用可能な Breeze 1.4.6 (またはそれ以降) で修正されました。
現在、Breeze にはバグがあり、約 1 週間後にリリースされる次のリリースで修正される予定です。この修正が行われると、breeze は EntityFramework データ モデルで見つかったすべての defaultValues を尊重します。
問題の 1 つは、プロパティ エディターを使用して「defaultValues」を Model First Entity Framework モデルに取り込むのは簡単ですが、流暢な構成を使用しない限り、Code First EF モデルに取り込むのは実際には難しいことです。残念ながら、EF は Code First モデル メタデータを作成するときに [DefaultValue] 属性を無視します。
現在使用できる回避策の 1 つは、「defaultValue」を任意の dataProperty に直接突っ込むことです。何かのようなもの:
var customerType = myEntityManager.metadataStore.getEntityType("Customer");
var fooProperty = customerType.getProperty("foo");
fooProperty.defaultValue = 123;
DB のデフォルト値を持つ列にStoreGeneratedPattern = "Computed"属性を追加して、edmx xml を編集してみてください。
編集: 実際には、xml を編集する前に、モデル エディター自体でStoreGeneratedPatternプロパティをComputedに設定してみてください。