我在net 4.0的项目中使用了实体框架6,当我设置了nuget包时,项目添加了对EntityFramework.dll和EntityFrameWork.SqlServer.dll的引用。
但是,我想捕获异常EntityCommandExecutionException,但两个dll都没有。
我知道我可以添加对System.Data.Entity的引用,但我不知道如果这是一个很好的解决方案,因为当我尝试使用枚举EntityState时会出现冲突,因为它是系统中的一个.Data.Entity和EntityFramework.dll中的其他内容。
因此,如果将System.Data.Entity库与EF 6一起使用是一个好主意,那么这是一个好主意。如果这是一个坏主意,这是EF 6中EntityCommandExecutionException的等效异常?
感谢。
答案 0 :(得分:1)
EF6不使用System.Data.Entity.dll,因此添加对此程序集的引用将无济于事,因为EF6将抛出自己的EntityCommandExecutionException
。实际上添加对EF6项目的引用会产生更多的混淆,因为即使类型名称往往被称为相同,两者不能一起工作(EF6是通过合并System.Data.Entity.dll和EntityFramework.dll构建的)代码库但不与EF5二进制兼容)。在您的应用中,您需要添加
使用System.Data.Entity.Core;
的地方