Mug*_*gen 6 sql-server split dapper
我有以下模型:
public class Model {
public string Name { get; set; }
public List<int> Numbers { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
以及返回包含两个 nvarchar 列的以下数据集的 SQL 查询:
| 姓名 | 数字 |
|---|---|
| 富 | 1,2,3,4 |
| 酒吧 | 4,17 |
有没有一种简单的方法可以将查询结果自动分配给正在List<Model>使用的 Dapper?
我知道我可以使用多重映射并在 C# 代码中自行进行拆分,但我宁愿获得更简单的解决方案。
我不确定你是否可以称之为“更简单”,但这样的事情是一个选择:
public class Result
{
public string Name { get; set; }
public List<int> Numbers { get; set; }
}
public class DapperTests
{
[Test]
public void Test()
{
var conn = new SqlConnection(@"Data Source=.\sqlexpress; Integrated Security=true; Initial Catalog=mydb");
conn.Open();
var result = conn.Query<string, string, Result>(
"select Name = 'Foo', Numbers = '1,2,3' union all select Name = 'Bar', Numbers = '4,5,6'", (a, b) => new Result
{
Name = a,
Numbers = b.Split(',').Select(Int32.Parse).ToList()
}, splitOn: "*").ToList();
Assert.That(result.Count, Is.EqualTo(2));
Assert.That(result.FirstOrDefault(x => x.Name == "Foo").Numbers.Count, Is.GreaterThan(0));
Assert.That(result.FirstOrDefault(x => x.Name == "Bar").Numbers.Count, Is.GreaterThan(0));
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5385 次 |
| 最近记录: |