【发布时间】:2020-02-18 22:59:19
【问题描述】:
当我添加条目时
var objectEntity = new ObjectStaging();
objectEntity .CreatedBy = ClaimsPrincipal.Current.Identity.Name;
objectEntity .ModifiedBy = ClaimsPrincipal.Current.Identity.Name;
objectEntity .Set(ObjectInfo);
database.ObjectStaging.Add(objectEntity);
database.SaveChanges();
由于某种原因,我的 objectEntity 没有被添加到我的数据库中,给出了以下代码。使用调试器时,它会通过database.ObjectStaging.Add(objectEntity);,但在调用SaveChanges() 后不会继续。有没有办法知道为什么无法将条目添加到数据库?
抛出异常:
抛出异常: 'System.Data.Entity.Validation.DbEntityValidationException' 在 一个或多个实体的 VCC.BrokerPortal.DAO.dll 验证失败。 有关详细信息,请参阅“EntityValidationErrors”属性。
有没有办法知道什么具体没有验证?
另外,我使用以下代码行测试了实体的状态,
database.ObjectStaging.Add(objectEntity);
var state= brokerPortalDB.Entry(objectEntity).State;
state 当前显示“已添加”的值。
【问题讨论】:
-
你检查过 database.Entry(objectEntity).State 吗?
-
如果调试器没有继续通过 SaveChanges(),那么您可能会引发异常,并且您的异常设置不会在所有异常上中断,或者此代码在吞下异常的工作线程上运行没有调试器中断。异常设置应该在 VS 中的“调试”->“Windows”下可用,然后选择“公共语言运行时异常”,使其成为一个勾选框。 (不是默认屏蔽的“Square”)
-
@FLICKER - 更新了线程。当我测试状态时,它显示了一个“添加”的值。
-
查看此链接以探索验证错误:stackoverflow.com/questions/7795300/…
标签: sql sql-server entity-framework