C# IsNull() 和 IsEqualTo() - Visual Studio 在示例 Dapper.net/Contrib 代码中无法识别它们

标签 c# dapper dapper-rainbow

我确定我在这里真的很愚蠢 - 但我正在进入 Dapper 和 contrib。示例代码包括如下行:

 using (var connection = new SqlConnection(ConfigurationManager.ConnectionStrings["DefaultConnection"].ConnectionString))
        {
            connection.Get<User>(3).IsNull();

            var id = connection.Insert(new User { Name = "Adam", Age = 10 });

IsNull() 永远不会被识别。 IsEqualTo 也不在同一上下文中。

我用谷歌搜索 - 没有什么关闭,在对象浏览器中搜索 - 我正在使用 Dapper - 并使用 Dapper.Contrib.Extensions;但它仍然找不到它。

谢谢

最佳答案

这些实际上是来自正在使用的测试框架的方法。它们实际上是断言; IsNull() 断言左边的值为null,否则抛出异常。 IsEqualTo 断言左边的值等于传递给方法的值,否则抛出异常。

对于实际代码,您不需要这些方法。我猜这个例子是从一个测试方法中提取出来的,它被用来确认插入前后数据的状态。

我想到 AssertNullAssertEqualTo 可能是更好的名字!

密码在Assert.cs ;它们可以也可以通过以下方式调用:

Assert.IsNull(connection.Get<User>(3));
...
Assert.IsEqualTo(someObj.SomeProp, 42);

等,在这种情况下,意图会更加明显。它们是扩展方法的事实在这种情况下隐藏了一些细节(具体来说,声明类型是 Assert 的事实)。

关于C# IsNull() 和 IsEqualTo() - Visual Studio 在示例 Dapper.net/Contrib 代码中无法识别它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37380983/

相关文章:

javascript - 如何使用正则表达式解析OData参数?

c# - 如何从 C#.net 代码将空变量传递给 SQL 存储过程

c# - 如何在SQL参数中添加多个 "WHERE conditionA OR conditionB OR conditionC"?

Dapper Rainbow - 如何在另一个模式中指定表名

c# - 当我在两者之间使用 MessageBox.Show() 时,我的代码如何工作,没有它就不能工作?

c# - 使用 HttpClient 的随机 401 未授权错误

c# - 使 dapper SQL 语法着色

c# - 来自单个查询的 Dapper 多个结果

c# - Dapper.Rainbow 与现有的数据库模式