DbSet 查找起订量 (EntityFramework.Testing.Moq)

2023-12-20

我一直在使用 Moq 对象EntityFramework.测试.起订量 https://github.com/scott-xu/EntityFramework.Testing#entityframeworktestingmoq--扩展,我最近在尝试查找时遇到了障碍。我的想法是正确的,只需进行这样的设置(来自文档):

// Create some test data
var data = new List<Blog>
{
    new Blog{ Id = 1, Name = "BBB" },
    new Blog{ Id = 2, Name = "CCC" },
    new Blog{ Id = 3, Name = "AAA" }
};

// Create a mock set and context
var set = new Mock<DbSet<Blog>>()
    .SetupData(data);

var context = new Mock<BloggingContext>();
context.Setup(c => c.Blogs).Returns(set.Object);

// Create a BlogsController and invoke the Index action
var controller = new BlogsController(context.Object);
var result = await controller.Index();

在控制器中,我可以这样做(再次来自文档):

var query = db.Blogs.OrderBy(b => b.Name);

但是,当我尝试使用模型的密钥进行 DbSet Find 时,如下所示:

var b = db.Blogs.Find(1);

我会返回null。

现在,我已经能够通过如下设置来完成这项工作:

context.Setup(m => m.Blogs.Find(It.IsAny<int>()))
   .Returns<object[]>(s => data.Find(d => d.Blogs == (int)s[0]));

但我想知道我是否一开始就做错了什么,以及我是否使事情变得过于复杂化。

感谢您的任何建议!


如果您查看签名SetupData method

public static Mock<DbSet<TEntity>> SetupData<TEntity>(this Mock<DbSet<TEntity>> mock, ICollection<TEntity> data = null, Func<object[], TEntity> find = null) where TEntity : class

您可以看到,您必须在该方法调用中指定查找谓词。通过这样做,您不必进行额外的调用来设置您的上下文。

你可以这样做:

var set = new Mock<DbSet<Blog>>()
    .SetupData(data, objects => data.SingleOrDefault(d => d.Id == (int) objects.First()));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DbSet 查找起订量 (EntityFramework.Testing.Moq) 的相关文章

  • 如何排列表格中的项目 - MVC3 视图 (Index.cshtml)

    我想使用 ASP NET MVC3 显示特定类型食品样本中存在的不同类型维生素的含量 如何在我的视图 Index cshtml 中显示它 an example 这些是我的代码 table tr th th foreach var m in
  • 使用 LINQ 和 ASP.NET MVC 更新多个表

    只是简单地说一下 我只是想寻求一些澄清 我希望通过一个 创建 操作来更新多个表 在尝试之前 我只是想知道是否可以简单地执行以下操作 db hdCalls InsertOnSubmit a db hdCustomers InsertOnSub
  • 限制实体框架中子实体的数量

    底线在前 有没有一种简洁的方法可以限制可以属于实体框架中父级的子实体的数量 我现在使用的是4 3 1 问题 我正在开发一个 ASP NET MVC3 站点 它通过使用实体框架的数据访问层访问数据 我有一个 SearchList 实体 它与搜
  • 如何在没有互联网连接的情况下安装 NuGet 包?

    目前我正在一台不允许访问互联网的虚拟电脑上进行开发 我设法获取 NuGet Tools vsix 将 NuGet 添加到 Visual Studio 2010 但似乎无法找出如何离线部署 NuGet 包 例如 我下载了EntityFrame
  • 使用 MVC 5 和实体框架的 jQuery 数据表

    我需要一些关于在控制器中放入什么内容的指导 以便我可以对 jQuery 数据表使用服务器端处理 我正在使用 MVC 5 和实体框架 示例位于 http datatablesmvc codeplex com documentation htt
  • 通过 HttpClient 使用外部 REST Web 服务的存储库模式示例?

    我已经进行了相当多的搜索 但没有找到任何在 ASP NET MVC 应用程序中使用存储库模式使用外部 REST Web 服务的好示例 并且具有松散耦合和有意义的关注点分离 我在网上找到的几乎所有存储库模式示例都是编写 SQL 数据或使用 O
  • 实时服务器上的 woff 字体 MIME 类型错误

    我有一个 asp net MVC 4 网站 我在其中使用 woff 字体 在 VS IIS 上运行时一切正常 然而 当我将 pate 上传到 1and1 托管 实时服务器 时 我得到以下信息 网络错误 404 未找到 http www co
  • 在 ASP.NET Core 2.0 Web Api 中返回“原始”json

    AFAIK 在 ASP NET Core Web Api 中返回数据的标准方法是使用IActionResult并提供例如一个OkObject结果 这对于对象来说效果很好 但是如果我以某种方式获得了一个 JSON 字符串 并且我只想将该 JS
  • Azure 云服务在应用程序池回收后停止运行

    我部署了一个 Azure 云服务 WebRole WebAPI 只有一个实例 我注意到 如果我等待一些空闲时间 没有 HTTP 请求 那么稍后服务就会死掉 并且对它的每个请求都会导致以下响应 Message An error has occ
  • 处理与不同相关实体的一对多的正确模式

    我有一个 C 项目 我使用实体框架作为 ORM 我有一个User 可以向多家银行付款 每家银行都是一个独立的实体 并且每家银行都由不同的字段描述 问题是 一User可以没有或有很多不同的Banks 我不太确定如何对此进行建模 临时解决方案是
  • 如何使用 ASP.NET Razor 语法应用 bootstrap v4 alpha 的表单输入验证类?

    因此 Bootstrap v4 alpha 对表单验证类进行了一些更改 现在 要将验证样式应用于表单输入 请将 CSS 类应用于父级div form group 我正在使用 ASP NET MVC4 编写一个网站 并试图弄清楚如何将此 CS
  • 缺少 EF ObjectContext.SaveChanges

    我正在一个新项目中使用实体框架 我从一年前就开始使用 EF 今天 我尝试使用 Visual Studio 2008 SP1 和 2010 生成实体数据模型 它正在生成对象上下文属性和实体集 但尚未生成 SaveChanges 方法 我什至尝
  • 使用实体框架从 2 个表返回数据

    我正在使用 MVC3 和实体框架 但我需要来自不同表的更多数据 通常我会做这样的事情来从表中获取数据 Table Users id username 在代码中我会做这样的事情来获取所有用户 public static IEnumerable
  • 是否可以在不连接数据库的情况下检索 MetadataWorkspace?

    我正在编写一个需要遍历实体框架的测试库MetadataWorkspace对于给定的DbContext类型 但是 由于这是一个测试库 我宁愿不连接到数据库 它引入了测试环境中可能无法使用的依赖项 当我尝试获取参考时MetadataWorksp
  • 将 Expression> 转换为 Expression>

    确实很简单的问题 我有显示 Nullable Bool 的 MVC 视图 例如 Html CheckBoxFor model gt model NullableBoolHere Model NullableBoolHere 我想创建一个新的
  • 在操作之外执行异步操作 asp.net mvc

    我希望能够在每个请求上从云数据库加载用户 并使用 asp net mvc 在控制器中的请求上提供该用户 问题是当前框架不支持从操作过滤器执行异步操作 所以 OnActionExecuting OnAuthorization 方法不允许我这样
  • ASP.NET 会话状态和多个工作进程

    我需要了解一些有关 ASP NET 会话状态的信息 因为它适用于 IIS 7 和 ASP net 3 5 如果应用程序配置为使用进程内会话状态 那么如果有多个工作进程 该应用程序是否可以正常工作 换句话说 工作进程是否共享会话状态 IIS
  • 如何处理 ASP.net MVC Ajax 加载页面上的 jQuery 事件?

    我有一个问题 我是 jQuery Mobile 领域的新手 对于 ASP Net MVC 部分我有点迷失 这是我的问题 在我的移动网站中 我想更改导航栏 我使用的更像是应用程序栏 按钮 而我位于编辑页面或主页等 因此 这些页面 编辑 显示
  • 如何从 C# 控制器重定向到外部 url

    我使用 C 控制器作为网络服务 在其中我想将用户重定向到外部网址 我该怎么做 Tried System Web HttpContext Current Response Redirect 但没有成功 使用控制器的重定向 http msdn
  • 单击关闭按钮后不显示 Google 一键登录 UI

    我正在尝试按照本指南使新的谷歌一键登录工作 https developers google com identity one tap web https developers google com identity one tap web

随机推荐

  • OpenGL SL 和 OpenGL ES 2.0 SL 之间的区别

    我需要为 Android 编写基于 opengl 的应用程序 OpenGL SL 和 OpenGL ES 2 0 SL 之间以及 OpenGL 和 OpenGL ES 之间有很大的区别吗 如果我使用一些与通用 OpenGL 而不是 Open
  • 如何获取目录 URL 的文件/目录列表?

    假设我有一个网址 http java sun com j2se 1 5 pdf我想获取以下所有文件 目录的列表pdf目录 我正在使用 Java 5 我可以用这个程序获取目录列表http www httrack com http www ht
  • 实体框架 5 更新记录

    我一直在探索在 ASP NET MVC3 环境中编辑 更新 Entity Framework 5 中的记录的不同方法 但到目前为止 没有一种方法满足我需要的所有条件 我会解释原因 我发现了三种方法 我将提及它们的优缺点 方法1 加载原始记录
  • 如何使用 Material-ui 在工具栏内拥有全高选项卡?

    我试图有一个固定的标题 右侧应该是选项卡 这
  • “gets() 未在此范围内声明”错误 [重复]

    这个问题在这里已经有答案了 使用以下代码 我收到 gets 未在此范围内声明 错误 include
  • 在Vuejs中创建全局变量

    我正在创建一个应用程序VueJS我想创建一个服务或全局变量来存储客户端是否向服务器发出请求 我一直在考虑配置一个中断器 在发出请求时将全局变量设置为 true 在请求完成时将变量设置为 false 因此 当我使用加载器组件时 它仅在变量为
  • 如何设计数据库约束,以便两个实体只有在两个字段值匹配时才能具有多对多关系?

    我有一个包含四个表的数据库 如下所示 地址簿 id 更多领域 Contact id地址簿 ID更多领域 Group id地址簿 ID更多领域 联系方式组 复合键组号联系方式 我的关系是地址簿 gt 联系人的一对多关系 地址簿 gt 组的一对
  • 构建中的 Unity 动画故障

    我的游戏中有一个角色带着雨伞和公文包 雨伞和公文包都是角色装备的一部分 他在编辑器和独立 PC 版本中的动画效果和外观都很棒 参见下面的示例 该角色还有一个打开雨伞的动画 我正在使用mecanim 然而 当我发布 Web Android 或
  • 如何将 printSchema 的结果保存到 PySpark 中的文件中

    我用过df printSchema 在 pyspark 中 它为我提供了具有树结构的模式 现在我需要将其保存在变量或文本文件中 我尝试过以下保存方法 但没有成功 v str df printSchema print v and df pri
  • 在 Windows 上的 git bash 中设置 ls 的颜色

    我最近安装了 Windows 版 GitHub 并且正在使用 git bash 提示符 现在困扰我的一件事是 当我输入 LS 时 所有目录都以蓝色列出 如何更改我的 git bash shell 以便当我输入 LS 时 目录以不同的颜色列出
  • JavaScript - 获取调用对象[重复]

    这个问题在这里已经有答案了 可能的重复 Javascript 如何找到调用者函数 https stackoverflow com questions 280389 javascript how do you find the caller
  • 如何将 Highcharter 图保存为本地磁盘上的图像?

    hc gt hc add series name London data citytemp london type area gt hc rm series name New York 我要出口hc作为 png 或 jpg 这可以通过选择导
  • Javascript 导出文本文件在 Firefox 中无法识别 \r\n

    我正在使用以下代码创建一个用于从 javascript 下载的文本文件 var lineFeed r n var errorFile errorFile This is a test linefeed errorFile errorFile
  • 使用活动记录进行不区分大小写的搜索

    我使用rails 3 0 4 这是我的 Rails 应用程序中的一段 Arel 查询 如何使用 upcase 方法以与数据库无关的方式进行不区分大小写的搜索 Customer where company id and firstname l
  • python 读取流时即时 md5

    python 3有用于制作过滤流的结构吗 特别是 我的目标是计算从带有请求的 REST 服务读取的内容的 md5 校验和 而无需制作额外的副本 如果我可以对某种过滤器流进行子类化 然后将字节推入 hashlib 派生的 md5 对象中 那就
  • 如何将godaddy域链接到AWS Elastic Beanstalk环境? [关闭]

    Closed 这个问题是与编程或软件开发无关 help closed questions 目前不接受答案 我在尝试链接我时遇到了这个问题Godaddy 域名与AWS Elastic Beanstalk 实例 我找到了很多关于如何链接的文档E
  • 传递二维数组,在 C 中有效,但在 C++ 中无效 [重复]

    这个问题在这里已经有答案了 我将一个二维数组传递给 mark 函数 void mark int n int m int i int j int canvisit m int a m 这段代码在 Codeblocks 上的 C 中运行良好 但
  • javascript中的QR码生成库[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我目前正在寻找一个可以对二维码中的文本进行编码的js库 唯一的 http d project googl
  • 通过 AWS Lambda 部署 Flask Web 应用程序

    我对 AWS Lambda 非常陌生 并且根据我在网上找到的许多示例 阅读无尽的文档 很难理解其功能 我了解使用此类服务 的主要目标是通过允许 Lambda 和 API 网关承担管理服务器的角色来实现成本高效且可能省力的无服务器架构 因此无
  • DbSet 查找起订量 (EntityFramework.Testing.Moq)

    我一直在使用 Moq 对象EntityFramework 测试 起订量 https github com scott xu EntityFramework Testing entityframeworktestingmoq 扩展 我最近在尝