加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 如何使用Dapper映射具有不同名称的标识列?

发布时间:2020-12-15 18:05:34 所属栏目:百科 来源:网络整理
导读:我有一个像bookId,AuthorId等id列的数据库.但是,我的代码文件只有一个Id属性.我试图将使用NHibernate的程序部分转换为Dapper,所以我试图消除对Id和BookId属性的需求. NHibernate有一个内置的标识映射,它将BookId映射到Book对象的Id属性,类似AuthorId映射到Au
我有一个像bookId,AuthorId等id列的数据库.但是,我的代码文件只有一个Id属性.我试图将使用NHibernate的程序部分转换为Dapper,所以我试图消除对Id和BookId属性的需求. NHibernate有一个内置的标识映射,它将BookId映射到Book对象的Id属性,类似AuthorId映射到Author对象的Id属性.

在sql查询中,有没有办法在给列的别名之外做这个Dapper?

public class Book {
  public int Id { get; set; }
  public string Name { get; set; }
}

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

我正在使用的示例查询如下所示:

select * from Books b inner join Author a on a.AuthorId = b.AuthorId

如果Dapper不容易支持,那么我对其他选项的想法是什么?

解决方法

根据设计,dapper没有映射层.在这条路上迈出了一步,在我们知道发生了什么事之前,我们将淹没在配置文件中.所以:两个选择:

>在SQL中添加别名
>在C#中添加一个垫片

所以要么(sql):

select BookId as [Id],Name from Books

或(C#):

private int BookId { get { return Id; } set { Id = value; } } // just for dapper

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读