いくつかのテーブルを持つ SQL Server 2008 R2 データベースがあり、各テーブルにはいくつかのトリガーがあります。列の 1 つで、これを Person.Age と呼びます。既定値があるため、明示的に値を指定しない場合、既定値は "18" になります。
create table PERSON
(
id int IDENTITY(1,1) PRIMARY KEY,
age char(2) DEFAULT '18',
Name char(40),
);
データベースからロードして選択するために、EntityFramework 4.0 (5.0 も試しました) と Visual Studio 2010 を使用しています。次のステートメントを使用してテーブルに挿入するたびに、行が挿入されますが、デフォルト値は完了していません:
var person = new Person
{
Name = "Peter"
};
using (var ctx = new MyEntities())
{
ctx.PERSON.AddObject(person);
ctx.SaveChanges();
}
これにより、Peter という名前の行が生成されますが、Age は null に設定され、デフォルトの 18 ではありません。
EDMX ファイルを更新/ロードすると、単純なテーブルとビューしかインポートできないように見え、プロパティをインポートするオプションがないように見えますが、これはデフォルトで行われると思っていましたか? デフォルトのプロパティが起動しない理由はありますか?
また、新しい行が PERSON に挿入されると、追加のテーブルが更新されるように、SQL Server でトリガーを定義しています。繰り返しますが、これはデータベースに対して SQL を直接実行すると機能しますが、EntityFramework を使用して Visual Studio から実行すると機能しません。
ありがとう、