使用 SQL Server 和 Dapper 的地图列表对象
Map List object using SQL Server and 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 服务器 table,然后使用 Dapper 从数据库中正确检索我的对象。关系是多对多的(集合可以'posses'个生成器,生成器可能被多个集合拥有)。
您可以使用 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);
我无法写出实际的 code/query,因为我不知道您的数据库架构...但希望您明白了?
我正在使用 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 服务器 table,然后使用 Dapper 从数据库中正确检索我的对象。关系是多对多的(集合可以'posses'个生成器,生成器可能被多个集合拥有)。
您可以使用 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);
我无法写出实际的 code/query,因为我不知道您的数据库架构...但希望您明白了?