3

我敢肯定我在这里真的很愚蠢 - 但我正在进入 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;但它仍然找不到它。

谢谢

4

1 回答 1

2

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

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

想到这一点AssertNullAssertEqualTo可能是更好的名字!

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

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

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

于 2016-05-23T07:51:57.123 回答