2013-11-27 49 views
0

我在net 4.0項目中使用實體框架6,當我安裝nuget包時,項目添加了對EntityFramework.dll和EntityFrameWork.SqlServer.dll的引用。EntityCommandExecutionException與項目淨4.0中的EF 6?

但是,我想捕獲異常EntityCommandExecutionException,但這兩個dll都沒有可用性。

我知道我可以添加一個對System.Data.Entity的引用,但我不知道如果這是一個好的解決方案,因爲當我嘗試使用枚舉EntityState時存在衝突,因爲它們之一System.Data.Entity和其他EntityFramework.dll中。

因此,quiestion是如果在EF 6中使用System.Data.Entity庫是一個好主意。如果這是一個壞主意,這是EF 6中EntityCommandExecutionException的等效異常?

謝謝。

回答

1

EF6不使用System.Data.Entity.dll,因此添加對此程序集的引用將無濟於事,因爲EF6會拋出它自己的EntityCommandExecutionException。實際上,添加對EF6項目的引用會產生更多混淆,因爲即使類型名稱通常被稱爲相同(EF6是通過合併System.Data.Entity.dll和EntityFramework.dll代碼庫,但不與EF5二進制兼容)。在你的應用程序中,你需要添加

using System.Data.Entity.Core;

因爲這是EntityCommandExecutionException type lives in EF6