web-dev-qa-db-ja.com

Entity Framework 6 Code Firstトリガー

Entity Framework 6 Code Firstを使用していますが、トリガーを作成したいと思います。

どうすればいいですか?

トリガーが必要な理由は、ユーザーがデータベースを直接編集するか、作成中のプログラムを使用して編集する可能性があるためです。また、テーブルの2つの列が両方ともnullではなく、両方がnullではないことを確認する必要があります。

私は探していて、方法を見つけることができません。

最初にコードを使用してトリガーを指定する方法はありますか?

22
Charles W

Entity Frameworkはトリガーをサポートしていませんが、トリガーを作成するステートメントを手動で実行することはできますが、テーブルの作成後にこれを行う必要があります(移行を使用する場合)。

EF 4.1 code-firstトリガーをテーブルに追加する でLadislavによって指定された手法を使用できます。

彼の警告に注意してください。ただし、EFはトリガーに加えられた変更を認識しません。テーブルの2つの列がnullでないことを確認するだけの場合は、制約を使用する方が適切です(EFでは制約もサポートされていませんが、手動で追加できます)。

22

ライブラリを確認してください EntityFramework.Triggers 。 Entity Frameworkレイヤーで機能するため、誰かがデータベースを直接変更してもトリガーイベントは発生しません。 NuGetリンクは https://www.nuget.org/packages/EntityFramework.Triggers/ です

15
Nick Strupat

移行を追加した後、移行ファイルを開き、以下に示すようにトリガーを作成します

注:データベースの変更を確認するには、update-databaseを実行する必要があります。

enter image description here

1
user2662006