Castle.Proxies.IdentityUserLogin: : EntityType 'IdentityUserLogin' has no key defined. Define the key for this EntityType.
我正在尝试为我的 MVC 5.1 项目设置测试,该项目使用 EntityFramework 6.1 版、AspNet.Identity.Core 2.0 版、AspNet.Identity.EntityFramework 2.0 版。我唯一的测试用例非常简单,一旦我尝试运行,它就会出现“IdentityUserLogin”和实体类型“IdentityUserRole”的上述错误。问题是,据我所知,为这两个实体定义了键!因为它们是由框架提供的。我无法在我的代码第一部分中明确看到它们的描述,但在数据库中我可以看到它们都有 key 。
在我的测试项目中,我使用了 Microsoft.VisualStudio.TestTools.UnitTesting 和 Moq(以及 EF 和 Identity Core 库)。
任何帮助或只是指向资源将不胜感激。我找不到任何人有类似的错误。
最佳答案
我遇到了同样的问题,最终能够通过如下创建模拟来运行测试:
var mockContext = new Mock<MyDbContext>() { CallBase = true };
据我了解,Mock 否则不会调用基类实现。这些键可能会在 - 我猜 - OnModelCreating 的基类实现中定义。
关于c# - 测试框架说实体没有为内置实体定义的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22907581/