我在Visual Studio和C#中使用Effort来重新创建和单元测试数据库.我正在为一个表编写一个类,所以我只使用该表中的对象填充数据库.我的问题是Effort数据库希望对象的外键引用数据库中的实际对象.
我的错误是
System.Data.Entity.Infrastructure.DbUpdateException:更新条目时发生错误.有关详细信息,请参阅内部异常
System.Data.Entity.Core.UpdateException:更新条目时发生错误.有关详细信息,请参阅内部异常
System.Reflection.TargetInvocationException:调用目标抛出了异常.
NMemory.Exceptions.ForeignKeyViolationException:外键违规[Table1 :: SettingsId].引用的表[Table2 :: SettingsId]中不存在键值[0].错误代码:RelationError
由于此特定表具有许多具有许多其他外键的对象的外键,因此需要大量工作.有没有办法在努力将其关闭以便我可以单独测试这张桌子?
小智 1
我也遇到了这个问题,想在更大的数据库范围内测试该表。您可以创建一个辅助方法,该方法将仅实例化您需要的所有内容,并传递带有引用的数据库或表作为结果。这很有帮助,因为您可以在需要时从任何需要的测试方法/类中调用它。