似乎有一個DapperExtensions項目,但在Dapper項目中也有一個SqlMapperExtensions類。有重疊嗎?一個比另一個更受歡迎嗎?我無法在Dapper.Contrib上找到任何文檔。Dapper SqlMapperExtensions/Dapper.Contrib?
回答
Dapper.Contrib
是集名稱:https://github.com/StackExchange/Dapper/tree/master/Dapper.Contrib
SqlMapperExtensions
是包含了contrib方法中Dapper.Contrib
靜態類:https://github.com/StackExchange/Dapper/blob/master/Dapper.Contrib/SqlMapperExtensions.cs
最好的文檔是測試用例類:https://github.com/StackExchange/Dapper/blob/master/Dapper.Tests.Contrib/TestSuite.cs
我覺得user1003841是參考https://github.com/tmsmith/Dapper-Extensions。
作者是Thad Smith和Page Brooks--所以這不是Sam Saffron的工作。項目頁面顯示「此庫與Dapper.Contrib分離」。
「作者是Thad Smith和Page Brooks--所以這不是Sam Saffron的工作。」讓我大聲笑,因爲誰的原始答案來自 – Terry
很久以前,我在與Sam的一些討論後寫了第一篇Dapper.Contrib。我不知道擴展包的詳細信息,它們似乎或多或少地執行相同的CRUD事件,但是在某些情況下,Contrib包可能會稍微快一點,因爲它具有用於查詢和接口的內置緩存基於內部的POCO「髒」跟蹤。從測試代碼中刪除:
using (var connection = GetOpenConnection())
{
connection.Get<User>(3).IsNull();
var id = connection.Insert(new User {Name = "Adam", Age = 10});
//get a user with "isdirty" tracking
var user = connection.Get<IUser>(id);
user.Name.IsEqualTo("Adam");
connection.Update(user).IsEqualTo(false); //returns false if not updated, based on tracking
user.Name = "Bob";
connection.Update(user).IsEqualTo(true); //returns true if updated, based on tracking
user = connection.Get<IUser>(id);
user.Name.IsEqualTo("Bob");
//get a user with no tracking
var notrackedUser = connection.Get<User>(id);
notrackedUser.Name.IsEqualTo("Bob");
connection.Update(notrackedUser).IsEqualTo(true); //returns true, even though user was not changed
notrackedUser.Name = "Cecil";
connection.Update(notrackedUser).IsEqualTo(true);
connection.Get<User>(id).Name.IsEqualTo("Cecil");
connection.Query<User>("select * from Users").Count().IsEqualTo(1);
connection.Delete(user).IsEqualTo(true);
connection.Query<User>("select * from Users").Count().IsEqualTo(0);
connection.Update(notrackedUser).IsEqualTo(false); //returns false, user not found
Contrib沒有擴展功能很好看的謂詞系統。 注意 Dapper.Contrib在這裏有一個很好的線程Dapper.Rainbow VS Dapper.Contrib
- 1. dapper querymultiple spliton error
- 2. Dapper和Varchars
- 3. Dapper和子類
- 4. Dapper。 IDbConnection和IDbTransaction
- 5. Dapper CRUD GUID Ids
- 6. Dapper和DynamicParameter()
- 7. Dapper和FBCommand
- 8. .NET Dapper範圍
- 9. Dapper(connection.Query或connection.Execute)
- 10. Npgsql + Dapper ExecuteReader
- 11. Dapper Order By
- 12. Dapper和SQL注入
- 13. Dapper多重映射
- 14. Dapper - 調用Oracle schema.package.function
- 15. 映射SqlGeography與Dapper
- 16. 在Dapper DbContext,DbSet等
- 17. Dapper死鎖問題
- 18. Dapper Multi QueryMultiple映射
- 19. Custom C#Dapper ORM wrapper
- 20. Dapper。 IoC,Testing和Agatha
- 21. 使用Dapper刪除列表<T>使用Dapper
- 22. mvc3 dapper參數問題
- 23. Dapper入門的好例子?
- 24. Dapper通過動態參數
- 25. 微ORM Dapper找不到
- 26. 當用Dapper插入NotSupportedException
- 27. 單元測試Dapper更新
- 28. Dapper反序列化XML
- 29. 使用dapper訪問Mysql
- 30. Dapper ORM嵌套對象
Nuget中的'Dapper.Contrib'?在同一個項目中使用'Dapper.Contrib'和'Dapper.Rainbow'是很好的做法嗎? – Kiquenet