DapperExtensions プロジェクトがあるようですが、Dapper プロジェクトには SqlMapperExtensions クラスもあります。重複はありますか?どちらが優先されますか? Dapper.Contrib に関するドキュメントが見つかりません。
3 に答える
Dapper.Contribはアセンブリ名です: https://github.com/StackExchange/Dapper/tree/master/Dapper.Contrib
SqlMapperExtensionshttps://github.com/StackExchange/Dapper/blob/master/Dapper.Contrib/SqlMapperExtensions.cs内の contrib メソッドを含む静的クラスDapper.Contribです。
最良のドキュメントは、テスト ケース クラスです: https://github.com/StackExchange/Dapper/blob/master/Dapper.Tests.Contrib/TestSuite.cs
最初の Dapper.Contrib は、Sam との話し合いの後、ずっと前に書きました。Extensions-package の詳細はわかりませんが、多かれ少なかれ同じ CRUD を行っているようですが、Contrib-package は、クエリとインターフェイスの両方にキャッシュが組み込まれているため、一部のシナリオでは多少高速になる場合があります。内部の「ダーティ」トラッキングを備えたベースの 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 には、Extensions にある見栄えの良い述語システムがありません。ここに Dapper.Contrib に関する良いスレッドがあることに注意してくださいDapper.Rainbow VS Dapper.Contrib
user1003841 はhttps://github.com/tmsmith/Dapper-Extensionsを参照していたと思います。
著者は Thad Smith と Page Brooks です。つまり、Sam Saffron の作品ではありません。プロジェクト ページには、「このライブラリは Dapper.Contrib とは別の取り組みです」と記載されています。