[英]Entity Framework and SQL Server OUTPUT clause
我想在使用Entity Framework時使用SQL OUTPUT子句來保存數據庫中的記錄歷史記錄。 為此,EF需要為DELETE語句生成以下示例。
Delete From table1
output deleted.*, 'user name', getdate() into table1_hist
Where field = 1234;
表table1_hist與table1具有相同的列,並添加了兩列來存儲執行操作的用戶的名稱及其發生的時間。 但是,EF似乎沒有辦法支持這個SQL Server的子句,所以我迷失了如何實現它。
我查看了EF的源代碼, DELETE命令是在內部靜態方法(GenerateDeleteSql in System.Data.Entity.SqlServer.SqlGen.DmlSqlGenerator class)
,因此我無法擴展該類以添加我想要的行為。 看起來我將不得不根據現有代碼重寫SQL Server提供程序,但這是我想要避免的...
所以,我的問題是,是否還有另一種選擇(例如擴展)或者我是否必須重寫此提供程序?
謝謝。
你考慮過嗎?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.