-
-
Notifications
You must be signed in to change notification settings - Fork 480
/
Copy pathQueryBySql.cs
54 lines (41 loc) · 1.56 KB
/
QueryBySql.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
using System.Collections.Generic;
using System.Threading.Tasks;
using Marten.Testing.Documents;
namespace Marten.Testing.Examples;
public class QueryBySql
{
public void QueryForWholeDocumentByWhereClause(IQuerySession session)
{
#region sample_query_for_whole_document_by_where_clause
var millers = session
.Query<User>("where data ->> 'LastName' = 'Miller'");
#endregion
}
public void QueryWithParameters(IQuerySession session)
{
#region sample_query_with_sql_and_parameters
// pass in a list of anonymous parameters
var millers = session
.Query<User>("where data ->> 'LastName' = ?", "Miller");
// pass in named parameters using an anonymous object
var params1 = new { First = "Jeremy", Last = "Miller" };
var jeremysAndMillers1 = session
.Query<User>("where data ->> 'FirstName' = @First or data ->> 'LastName' = @Last", params1);
// pass in named parameters using a dictionary
var params2 = new Dictionary<string, object>
{
{ "First", "Jeremy" },
{ "Last", "Miller" }
};
var jeremysAndMillers2 = session
.Query<User>("where data ->> 'FirstName' = @First or data ->> 'LastName' = @Last", params2);
#endregion
}
public async Task QueryAsynchronously(IQuerySession session)
{
#region sample_query_with_sql_async
var millers = await session
.QueryAsync<User>("where data ->> 'LastName' = ?", "Miller");
#endregion
}
}