EF4.1を使用すると、削除されたときに呼び出される自分のPOCOでオーバーライドできる機能のイベントがありますか?ファイルへの参照を含むDBを使用してファイルシステムにイメージを保存します。 DBから削除すると、一致するファイルも削除します。OnDeleteまたファイルを削除
3
A
答えて
1
DbContext
のSaveChanges
メソッドを上書きできます。
public override int SaveChanges()
{
var deletedEntities = ChangeTracker.Entries().Where(entry => entry.State == EntityState.Deleted);
foreach (var deletedEntity in deletedEntities)
{
if (deletedEntity .Entity is MyEntity)
{
//delete the file
}
}
return base.SaveChanges();
}
あなたは
using (var scope = new TransactionScope())
{
//your deletion logic
myContext.SaveChanges();
scope.Complete();
}
0
データベースレベルのトリガーで実行してください。 EFはこれを扱う適切な場所ではありません。
+0
EFは私のDBにアクセスする唯一の場所です。私はロジックを置くのが好きではなく、ファイルシステムの呼び出しをDBに入れます。 EFはそれを全く行うことができますか? – Daveo
関連する問題
- 1. onDelete(「カスケード」)、ピボットテーブルのデータを削除しませ
- 2. MY_APP.appファイルを削除しました
- 3. 削除されたファイルは削除されません
- 4. Django - ファイルまたは画像の削除
- 5. Gitデプロイメントフック削除されたファイルを削除しない
- 6. Codeigniter:すべてのファイルを削除した後にディレクトリを削除します
- 7. grgit - 新しいファイルを追加して削除したファイルを削除する
- 8. Symfony 2 onDelete setNull
- 9. JavaScriptのONDELETEオブジェクトイベント
- 10. @OnDelete with @OneToMany
- 11. S3で古いファイルを削除または削除する方法は?
- 12. githubプルリクエストから削除されたファイルを削除しますか?
- 13. Git:originブランチは、クローンブランチから削除したファイルを削除しません。
- 14. TextInputLayoutヒントタグの削除または削除
- 15. 削除ファイル
- 16. 削除ファイル8
- 17. 削除ファイルは
- 18. 削除ファイル:#
- 19. 削除ファイルは
- 20. KMLファイルを削除して古いKMLファイルを削除する
- 21. TypeScriptウォッチ - 削除されたターゲットJSファイルの削除
- 22. ファイルの削除と親ディレクトリの削除
- 23. ファイルの削除を中止したい
- 24. ファイルを削除するためのバッチスクリプト
- 25. PHPを使用したファイルの削除
- 26. gruntで削除したファイルを見る
- 27. 削除されたファイルを再追加
- 28. 削除または削除のためのGETまたはPOST
- 29. Nodejsファイル削除とエラー:ENOENT:ファイルが削除された後、そのようなファイルがありません
- 30. 誤って削除されたファイルを回復しました
を次のように単一のトランザクションで更新を削除し、データベースファイルをラップすることができ、私はあなたが使っているどのデータベースシステムを知っているが、SQL Server 2008の始まるしていない、あなたは可能性がありますvarbinary(max)FILESTREAMカラムを使用したい場合は、データベース内ではなくファイルシステム内に透過的にファイルを格納します。手動でファイルの削除を管理する必要はありません。 –
@Julienはい私はSQL 2008 rc2を使用しています。しかし私のホスティングプロバイダはSQL空間の占有量を変えますが、通常のディスク容量は非常に安いので、DBサイズを最小限に抑えるよう努めています。 – Daveo