gpt4 book ai didi

c# - 测试框架说实体没有为内置实体定义的键

转载 作者:太空狗 更新时间:2023-10-29 18:13:16 24 4
gpt4 key购买 nike

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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com