在数据上下文中使用SaveChanges保存更改时,有没有办法确定哪个实体导致错误?例如,有时我会忘记将日期分配给不可为空的日期字段并得到“无效日期范围”错误,但我没有得到关于它是由哪个实体或哪个字段引起的信息(我通常可以通过以下方式追踪它煞费苦心地遍历我所有的对象,但这非常耗时)。堆栈跟踪非常无用,因为它只向我显示了SaveChanges调用中的错误,而没有任何关于错误发生位置的额外信息。请注意,我并不是要解决我现在遇到的任何特定问题,我只是想大致了解一下是否有办法判断是哪个实体/字段导致了问题。以堆栈跟踪的快速示例为例-在这种情况下发生错误是因为CreatedOn日期未在IACom
在数据上下文中使用SaveChanges保存更改时,有没有办法确定哪个实体导致错误?例如,有时我会忘记将日期分配给不可为空的日期字段并得到“无效日期范围”错误,但我没有得到关于它是由哪个实体或哪个字段引起的信息(我通常可以通过以下方式追踪它煞费苦心地遍历我所有的对象,但这非常耗时)。堆栈跟踪非常无用,因为它只向我显示了SaveChanges调用中的错误,而没有任何关于错误发生位置的额外信息。请注意,我并不是要解决我现在遇到的任何特定问题,我只是想大致了解一下是否有办法判断是哪个实体/字段导致了问题。以堆栈跟踪的快速示例为例-在这种情况下发生错误是因为CreatedOn日期未在IACom
我有一个带有UI、业务(实体)和数据(DbContext)层的ASP.NETMVC3Web应用程序。我首先使用EntityFramework4.1代码。现在,我正在覆盖数据层中的DbContext.SaveChanges(),以便我可以为实现我的的任何实体对象所做的所有更改设置ModifiedDate>IAuditable接口(interface)。我有一个返回DateTime.Now的静态DateProvider类和方法(GetCurrentDate)(除非我正在运行测试,在这种情况下,它会返回我告诉它的任何内容).我也想自动将ModifiedBy属性设置为当前用户。执行此操作的最佳
我有一个带有UI、业务(实体)和数据(DbContext)层的ASP.NETMVC3Web应用程序。我首先使用EntityFramework4.1代码。现在,我正在覆盖数据层中的DbContext.SaveChanges(),以便我可以为实现我的的任何实体对象所做的所有更改设置ModifiedDate>IAuditable接口(interface)。我有一个返回DateTime.Now的静态DateProvider类和方法(GetCurrentDate)(除非我正在运行测试,在这种情况下,它会返回我告诉它的任何内容).我也想自动将ModifiedBy属性设置为当前用户。执行此操作的最佳
我的Asp.netmvcweb应用程序中有以下Action方法:-[HttpPost][ValidateAntiForgeryToken]publicActionResultCreate(SDJoinsdj,FormCollectionformValues){Try{//codegoeshererepository.InsertOrUpdateSD(sdj.StorageDevice,User.Identity.Name,assetid);repository.Save();}catch(Exceptionex){//codegoeshere}PopulateViewBagData()
我的Asp.netmvcweb应用程序中有以下Action方法:-[HttpPost][ValidateAntiForgeryToken]publicActionResultCreate(SDJoinsdj,FormCollectionformValues){Try{//codegoeshererepository.InsertOrUpdateSD(sdj.StorageDevice,User.Identity.Name,assetid);repository.Save();}catch(Exceptionex){//codegoeshere}PopulateViewBagData()
我曾经使用context.Log来跟踪LINQtoSQL生成的SQL语句,如SqlServerQueryVisualizer–CannotseegeneratedSQLQuery所示。context.Log=newOutputWindowWriter();对于EF,有没有类似上述方法的类似和简单的方法? 最佳答案 通常,您可以通过简单的方式连接内置跟踪器或任何记录器context.Database.Log=msg=>Trace.WriteLine(msg);在DbContext构造函数中。查看更多MSDN.MS的其他一些方法是her
我曾经使用context.Log来跟踪LINQtoSQL生成的SQL语句,如SqlServerQueryVisualizer–CannotseegeneratedSQLQuery所示。context.Log=newOutputWindowWriter();对于EF,有没有类似上述方法的类似和简单的方法? 最佳答案 通常,您可以通过简单的方式连接内置跟踪器或任何记录器context.Database.Log=msg=>Trace.WriteLine(msg);在DbContext构造函数中。查看更多MSDN.MS的其他一些方法是her
当调用DbContext.SaveChanges时,我得到一个DbUpdateException:Anunhandledexceptionoftype'System.Data.Entity.Infrastructure.DbUpdateException'occurredinEntityFramework.dll.Additionalinformation:Anerroroccurredwhileupdatingtheentries.Seetheinnerexceptionfordetails.不幸的是,没有内部异常(至少,据我所知没有)。有什么方法可以准确了解SaveChanges抛
当调用DbContext.SaveChanges时,我得到一个DbUpdateException:Anunhandledexceptionoftype'System.Data.Entity.Infrastructure.DbUpdateException'occurredinEntityFramework.dll.Additionalinformation:Anerroroccurredwhileupdatingtheentries.Seetheinnerexceptionfordetails.不幸的是,没有内部异常(至少,据我所知没有)。有什么方法可以准确了解SaveChanges抛