使用单个表查询,我将了解如何执行此操作:
var sql = @"SELECT NAME, ID, COUNTY
FROM INFO_NAME
WHERE (NAME LIKE @Name) ORDER BY NAME, ID ASC";
IEnumerable<NameView> entrys = sqlConnection.Query<NameView>(sql, new { Name = "%" + name + "%" });
Run Code Online (Sandbox Code Playgroud)
现在,我正在使用多重映射,但不确定如何传递参数。
var sql = @"SELECT NAME, a.ID,
b.ID, ADDRESS
FROM INFO_NAME_NEW a
LEFT OUTER JOIN INFO_ADDRESS b on a.ID = b.ID
WHERE (NAME LIKE @TName) ORDER BY NAME, a.ID ASC";
var entrys = sqlConnection.Query<NameView, AddressView, NameView>(sql,
(a, b) =>
{
a.AddressView = b;
return a;
},
splitOn: "ID").AsQueryable();
Run Code Online (Sandbox Code Playgroud)
我正在测试DynamicParameters(但是它在存储过程中讨论过,因此不确定这是否是正确的方向):
var param = new DynamicParameters();
param.Add("@Name", "%" + name + "%");
Run Code Online (Sandbox Code Playgroud)
我试过了:
(a, b) =>
{
a.Name = "%" + name + "%";
a.AddressView = b;
return a;
},
Run Code Online (Sandbox Code Playgroud)
但是结果显示名称为“%somename%”。有什么建议么?
更新1
谢谢马克,您的建议解决了我的问题。所以现在我的代码如下所示:
var entrys = sqlConnection.Query<NameView, AddressView, NameView>(sql,
(a, b) =>
{
a.AddressView = b;
return a;
},
new { Name = "%" + name + "%" },
splitOn: "ID").AsQueryable();
Run Code Online (Sandbox Code Playgroud)
而且很好
| 归档时间: |
|
| 查看次数: |
1541 次 |
| 最近记录: |