相关疑难解决方法(0)

Multi-Mapper用于创建对象层次结构

我一直在玩这个,因为它看起来感觉很像记录的帖子/用户示例,但它略有不同,并不适合我.

假设以下简化设置(联系人有多个电话号码):

public class Contact
{
    public int ContactID { get; set; }
    public string ContactName { get; set; }
    public IEnumerable<Phone> Phones { get; set; }
}

public class Phone
{
    public int PhoneId { get; set; }
    public int ContactID { get; set; } // foreign key
    public string Number { get; set; }
    public string Type { get; set; }
    public bool IsActive { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我希望最终能够返回一个与多个Phone对象联系的东西.这样,如果我有2个联系人,每个联系人有2个电话,我的SQL将返回一个连接,作为结果集共4行.然后Dapper将弹出2个接触对象,每个接触对象有两部手机.

这是存储过程中的SQL:

SELECT *
FROM Contacts
    LEFT …
Run Code Online (Sandbox Code Playgroud)

dapper multi-mapping

75
推荐指数
7
解决办法
5万
查看次数

.Query <T>表示嵌套对象的T.

可能重复:
如何使用Dapper有效地选择聚合对象?

有没有可能让dapper实例化嵌套对象,如果是这样,有没有这个实例的例子?

对于大多数情况,.net原语对我来说已足够,但并非总是如此.hack可能是将外键包含在父类型中作为基元,然后根据这些实例进行实例化.我希望这不是必要的,因为它会在POCO模型中产生不必要的噪音.

c# orm dapper

6
推荐指数
0
解决办法
1050
查看次数

如何使用dapper一起选择一对多关系和一对一

我有以下类和数据库模式.我试图使用dapper从数据库中查询这些数据,这将使整个对象图水合.我查看了各种SO问题和测试,但无法弄清楚如何做到这一点.

DB Schema

Author
  -AuthorId
  -Name

Post
  -PostId
  -Content
  -AuthorId

Comment
  -PostId
  -CommentId
  -Content

Tag
  -PostId
  -TagId
  -Name
Run Code Online (Sandbox Code Playgroud)

public class Author
{
    public int AuthorId { get; set; }
    public string Name { get; set; }
}

public class Tag
{
    public int PostId { get; set; }
    public int TagId { get; set; }
    public string Name { get; set; }
}

public class Post
{
    public int PostId { get; set; }
    public string Content { get; …
Run Code Online (Sandbox Code Playgroud)

select one-to-one one-to-many dapper

5
推荐指数
1
解决办法
3693
查看次数

标签 统计

dapper ×3

c# ×1

multi-mapping ×1

one-to-many ×1

one-to-one ×1

orm ×1

select ×1