2013-09-16 9 views
6

私はEntity FrameworkでFirebird ADO.NETプロバイダを使用していますが、この質問は他のプロバイダにも当てはまります。Entity Frameworkで挿入するときにIDフィールドを条件付きで設定する

JOBNOをすることでNULL

に設定されている場合、私は発電機を使用してJOBNOフィールドを更新し「挿入の」トリガーを持っているデータベースで

[Column("JOBNO"), DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public int JobNo { get; set; } 

を次のように私は私のモデルにフィールドを持っています私のモデルのフィールドでDatabaseGenerated属性をDatabaseGeneratedOption.Identityに設定すると、エンティティフレームワークは正しく挿入されたときにJOBNOをデータベースからプルします。

ただし、挿入するときに手動でJOBNO列を指定する必要がありますが、EFは理解できず、生成された値を使用するだけです。

DataBaseGeneratedフィールドのこの条件設定を許可する方法はありますか?

答えて

0

DataBaseGeneratedフィールドの条件設定を行う方法がありません

第一オプション: が(代わりにデータベースの)アプリケーションに転送挿入トリガーの振る舞いを持つことで、この方法は、あなたが常にアプリケーションからIDを生成します。

第二オプション: はアイデンティティを指定し、EFは、データを受信し、それが受信しないときは、トリガーから値を取得できるようになりますdatabase.Thisの途中でnullとして残すことではありません。 (ただし、トリガーを変更して、IDが提供されていないときに新しいIDを作成するようにしてください)

関連する問題