2013-11-27 52 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