使用SQL Server和Dapper映射列表对象

时间:2017-08-28 12:59:39

标签: sql-server dapper

我正在使用SQL Server和Dapper,我想将我的模型对象正确存储到数据库中并检索它们。

这是我的模型,guid列表是其他模型'Generator'ID列表。

public class GeneratorSet
{
    public Guid Id { get; set; }
    public string Name { get; set; }
    public string Description { get; set; }
    public List<Guid> GeneratorsList { get; set; }
}

我的目标是将此对象正确映射到SQL Server表,然后使用Dapper从数据库中正确检索我的对象。这种关系是多对多的(设置可以'拥有'许多发电机,并且发电机可能由许多集合拥有)。

1 个答案:

答案 0 :(得分:2)

您可以使用SplitOn参数执行此操作...以下是指南;

https://taylorhutchison.github.io/2016/03/23/dapper-orm-complex-queries.html

或者只是使用lambda的唯一名称和映射 - 使用文档中的示例(https://github.com/StackExchange/Dapper);

var sql = 
@"select * from #Posts p 
left join #Users u on u.Id = p.OwnerId 
Order by p.Id";

var data = connection.Query<Post, User, Post>(sql, (post, user) => { post.Owner = user; return post;});
var post = data.First();

Assert.Equal("Sams Post1", post.Content);
Assert.Equal(1, post.Id);
Assert.Equal("Sam", post.Owner.Name);
Assert.Equal(99, post.Owner.Id);

我无法编写实际的代码/查询,因为我不知道您的数据库架构......但希望您明白这一点?