2016-05-20 3 views
1

SaveChangesには、関連付けられたプロパティに値が割り当てられた列のみを含むINSERTステートメントを生成できますか?例えばEF6で割り当てられたプロパティのみを挿入する

administrator.Login = login 
administrator.PasswordSalt = salt 
administrator.Password = hashed 
administrator.CreatedBy = "xxx" 

db.Administrators.Add(administrator) 
db.SaveChanges() 

のみINSERT文の四つのフィールドを持っている必要があります。現在、SaveChangesはすべてのフィールドを追加しており、割り当てられていないプロパティの値はNULLに設定されているため、デフォルト値は使用されません。例:CreatedDateのデフォルト値はgetdate()です。

答えて

0

コンパイル時にINSERT/UPDATEのステートメントからプロパティを除外するために、少なくとも2つの異なる方法があります。

1)EDMXは:エンティティに行くとComputedまたはIdentityへのプロパティのStoreGeneratedPatternオプションを設定します。

CodeFirstを使用する場合は、代わりに[DatabaseGenerated(DatabaseGeneratedOption.Computed)] attribiteを試してください。

2)SQLテーブルにAFTER INSERTトリガーを追加して、挿入されたレコードをデフォルト値で更新します。 How to update inserted field in trigger

純粋なEFでは実行時に実行することはできません。

関連する問題