在EF6 DB First方法和某些ADO操作中所做的操作之間是否可以共享一個連接(以及事務)?實體框架6數據庫優先 - 如何與ADO共享連接和事務
當我在這裏閱讀:https://msdn.microsoft.com/en-us/data/dn456843.aspx#existing 自EF v6以來就可以共享連接和事務,但我必須將SqlConnection對象作爲參數傳遞給上下文類的構造函數。 但是,如果我在數據庫優先方法中這樣做,我有UnintentionalCodeFirstException。
當我在這裏讀取:https://msdn.microsoft.com/en-us/data/jj592674 當使用DB First方法時,我必須使用EntityConnection的實例作爲上下文類的構造函數的參數。但是EntityConnection類的構造函數只接受CLOSED連接。 因此,我不能共享事務,因爲連接必須在傳遞到上下文類之前關閉。
我是否正確,在這種情況下共享一個連接是不可能的,或者有其他方法?
是TransactionScope仍然是唯一的方法來包裝操作在EF 6 DB第一次和ADO在一個事務(單獨的連接)?
您能詳細介紹一下爲什麼要分享連接嗎? –
@RobTillie在我使用的應用程序中,部分代碼仍然使用ADO,其他部分使用EF。我想在事務中將操作包裝在EF和ADO中。 TransactionScope有一些限制,MS建議使用一種連接方法。連接越少越好。 – wlodziu
你可以用反射來破解這個。我用ef和sqlbulkcopy完成了這個。現在可以複製代碼。 –