Tutorial by Examples



using StackExchange.Redis; // ... // connect to the server ConnectionMultiplexer connection = ConnectionMultiplexer.Connect("localhost"); // select a database (by default, DB = 0) IDatabase db = connection.GetDatabase(); // run a command, in this case a GET RedisValue myVal ...
Visual Studio GUIで検索するか、 ツール> NuGet Package Manager>ソリューションのパッケージ管理...(Visual Studio 2015) または、このコマンドをNuget Power Shellインスタンスで実行して、最新の安定版をインストールしますInstall-Package Dapper または特定のバージョンInstall-Package Dapper -Version 1.42.0
コンパイル時に既知の型については、 Query<T>汎用パラメータを使用してください。 public class Dog { public int? Age { get; set; } public Guid Id { get; set; } public string Name { get; set; } public float? Weight { get; set; } public int IgnoredProperty { get { return 1; } } } // IDBConnection...
ジェネリック型を省略すると、動的にクエリを実行することもできます。 IDBConnection db = /* ... */; IEnumerable<dynamic> result = db.Query("SELECT 1 as A, 2 as B"); var first = result.First(); int a = (int)first.A; // 1 int b = (int)first.B; // 2
class ToyProfiler : IProfiler { public ConcurrentDictionary<Thread, object> Contexts = new ConcurrentDictionary<Thread, object>(); public object GetContext() { object ctx; if(!Contexts.TryGetValue(Thread.CurrentThread, out ctx)) ctx = null; ...
ConnectionMultiplexer conn = /* initialization */; var profiler = new ToyProfiler(); conn.RegisterProfiler(profiler); var threads = new List<Thread>(); var perThreadTimings = new ConcurrentDictionary<Thread, List<IProfiledCommand>>(); for (var i = 0; i < 16; i++) {...
IDBConnection db = /* ... */ var id = /* ... */ db.Execute(@"update dbo.Dogs set Name = 'Beowoof' where Id = @id", new { id });
簡単な使い方 Dapperはストアドプロシージャを完全にサポートしています: var user = conn.Query<User>("spGetUser", new { Id = 1 }, commandType: CommandType.StoredProcedure) .SingleOrDefault(); 入力、出力、およびリターンのパラメータあなたは何かもっと欲しいと思うなら、あなたはできます: var p = new DynamicParameters(); p...
using System.Data; using System.Linq; using Dapper; class Program { static void Main() { using (IDbConnection db = new SqlConnection("Server=myServer;Trusted_Connection=true")) { db.Open(); var result = db.Query<string>(&quo...
LINQPadは、データベースクエリのテストに最適で、 NuGetの統合も含まれています。 LINQPadでDapperを使用するには、 F4キーを押してクエリのプロパティを開き、[ Add NuGet]を選択します。 dapper dot netを検索し、 Add To Queryを選択します。また、LINQPadクエリに拡張メソッドを含めるには、[ 名前空間の追加 ]をクリックして[Dapper] を強調表示することもできます。 Dapperを有効にすると、言語ドロップダウンをC#プログラムに変更し、クエリ結果をC#クラスにマップし、.Dump()メソッドを使用して結果を検査できます。...
public class IHtmlStringTypeHandler : SqlMapper.TypeHandler<IHtmlString> { public override void SetValue( IDbDataParameter parameter, IHtmlString value) { parameter.DbType = DbType.String; parameter.Value = value?.ToHtmlString(); } pu...
1つのクエリで複数のグリッドをフェッチするには、 QueryMultipleメソッドが使用されます。これにより、返されたGridReaderに対する連続した呼び出しによって各グリッドを順番に取得できます。 var sql = @"select * from Customers where CustomerId = @id select * from Orders where CustomerId = @id select * from Returns where CustomerId = @id"; using (...
Dapperを使用すると、完全にパラメータ化されたSQLを使用してベストプラクティスを簡単に実行できます。 パラメータは重要なので、大まかにそれを正しく取得することができます。あなたは自分のRDBMSのための通常の方法であなたのパラメータを表現する(通常は@foo 、 ?fooまたは:foo )と呼ばれるメンバー持つオブジェクトDapperの与えるfoo 。これを行う最も一般的な方法は、匿名型です: int id = 123; string name = "abc"; connection.Execute("insert [KeyLookup](Id, Na...
場合によっては、保守性や表現力の面でパラメータの利便性が、パラメータとして扱うための性能のコストよりも凌駕されることがあります。たとえば、ページサイズが構成設定によって固定されている場合などです。または、ステータス値がenum値と一致しています。検討してください: var orders = connection.Query<Order>(@" select top (@count) * -- these brackets are an oddity of SQL Server from Orders where CustomerId = @customerId a...
データベースクエリの一般的なシナリオはIN (...)です。ここでのリストは実行時に生成されます。ほとんどのRDBMSにはこのための優れたメタファーがありません。これには汎用のクロスRDBMSソリューションはありません。代わりに、dapperは穏やかな自動コマンド拡張を提供します。必要なのは、 IEnumerable提供されるパラメータ値です。 @fooを含むコマンドは、 (@foo0,@foo1,@foo2,@foo3) (4つのアイテムのシーケンスに対して)展開されています。これの最も一般的な使用法はINです。 int[] orderIds = ... var orders = conn...
時々、あなたは同じことを何度もやりたいと思っています。 最も外側のパラメータ(通常は単一の匿名型またはドメインモデルインスタンス)が実際にIEnumerableシーケンスとして提供されている場合、DapperはこれをExecuteメソッドでサポートします。例えば: Order[] orders = ... // update the totals connection.Execute("update Orders set Total=@Total where Id=@Id", orders); ここで、dapperは単純に私たちのデータを単純にループしています。 O...
Redisのすべての値は、最終的にRedisValueタイプとして格納されます。 //"myvalue" here is implicitly converted to a RedisValue type //The RedisValue type is rarely seen in practice. db.StringSet("key", "aValue");
db.StringSet("key", 11021); int i = (int)db.StringGet("key"); または、 StackExchange.Redis.Extensionsを使用します 。 db.Add("key", 11021); int i = db.Get<int>("key");
1つのオブジェクト/コールですべてのパラメータをきれいにまとめることは必ずしも可能ではありません。より複雑なシナリオを支援するために、dapperはparamパラメータをIDynamicParametersインスタンスにします。これを行うと、カスタムAddParametersメソッドが適切なタイミングで呼び出され、に追加するコマンドが渡されます。ただし、ほとんどの場合、既存のDynamicParametersタイプを使用すれば十分です。 var p = new DynamicParameters(new { a = 1, b = 2 }); p.Add("c", dbT...
ADO.NETでは、 null正しく処理することは、常に混乱の原因となります。大まかな点で重要なのは、 あなたがする必要がないということです。それは内部的にすべてそれを扱います。 nullパラメータ値は、 DBNull.Valueとして正しく送信されDBNull.Value ある読み取り値nullとして提示されているnull単に(そのタイプに基づくデフォルトを残す)が無視(既知のタイプへのマッピングの場合)、またはそれだけで動作します: string name = null; int id = 123; connection.Execute("update Customer ...

Page 1 of 1336