【发布时间】:2014-06-04 18:49:10
【问题描述】:
我正在寻找使用 instructions provided here 的 Entity Framework 6 对某些方法进行单元测试。
不过,我的设置略有不同 - 我也在使用 ASP.Net Identity(使用 EF 的默认实现)。因此,我的上下文继承自 IdentityDbContext。
当我运行测试时,我得到一个包含以下详细信息的异常:
Castle.Proxies.IdentityUserLogin: : EntityType 'IdentityUserLogin' has no key defined. Define the key for this EntityType.
Castle.Proxies.IdentityUserRole: : EntityType 'IdentityUserRole' has no key defined. Define the key for this EntityType.
IdentityUserLogins: EntityType: EntitySet 'IdentityUserLogins' is based on type 'IdentityUserLogin' that has no keys defined.
IdentityUserRoles: EntityType: EntitySet 'IdentityUserRoles' is based on type 'IdentityUserRole' that has no keys defined.
我读过,在正常使用中,这些都是在默认的 OnModelCreating 方法中设置的。
但是任何人都可以就在上面链接的方法中说明的模拟上下文中处理这个问题提供建议吗?
谢谢
安迪
【问题讨论】:
-
您使用的是最小起订量还是类似的东西?
-
是的,使用最小起订量。我基本上遵循上述问题中链接到的 MSDN 页面中的说明。
-
我知道这是一年后的事了,但你有没有让这个工作?奇怪的是 POST 对我有效,但 PUT 失败。
-
我没有。切换到使用 Effort 库来测试 EF 而不是尝试继续使用此方法,部分原因在下面的答案中指出。
标签: c# asp.net entity-framework unit-testing asp.net-identity