相关疑难解决方法(0)

使用类属性手动映射列名称

我是Dapper Micro ORM的新手.到目前为止,我能够将它用于简单的ORM相关内容,但我无法使用类属性映射数据库列名.例如:

我有如下数据库表:

Table Name: Person
person_id  int
first_name varchar(50)
last_name  varchar(50)
Run Code Online (Sandbox Code Playgroud)

我有一个名为Person的课程

public class Person 
{
    public int PersonId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

请注意,表中的列名与我尝试映射查询结果的数据的类的属性名不同.

var sql = @"select top 1 PersonId,FirstName,LastName from Person";
using (var conn = ConnectionFactory.GetConnection())
{
    var person = conn.Query<Person>(sql).ToList();
    return person;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码不起作用,因为列名与对象的(Person)属性不匹配.在这种情况下,我可以在Dapper中手动映射(例如person_id => PersonId)具有对象属性的列名吗?

任何线索或帮助将受到高度赞赏.

dapper

156
推荐指数
11
解决办法
10万
查看次数

Dapper SqlMapperExtensions/Dapper.Contrib?

似乎有一个DapperExtensions项目,但Dapper项目中还有一个SqlMapperExtensions类.有重叠吗?一个比另一个更受欢迎吗?我在Dapper.Contrib上找不到任何文档.

.net orm dapper

10
推荐指数
2
解决办法
7211
查看次数

Dapper sqlmapperextensions自动将"s"添加到tablename?

这是我第一次使用Dapper.Contrib(Nuget的最新版本),这是一个奇怪的情况:

using (SqlConnection cn = new SqlConnection(connectionString))
{
    cn.Open();
    var product = cn.Get<Product>(1);
}
Run Code Online (Sandbox Code Playgroud)

在SqlMapperExtensions上,它引发了错误Invalid object name 'Products':

public static T Get<T>(this IDbConnection connection,
                       dynamic id, 
                       IDbTransaction transaction = null, 
                       int? commandTimeout = null) where T : class
{
    var type = typeof(T);
    string sql;
    if (!GetQueries.TryGetValue(type.TypeHandle, out sql))
}
Run Code Online (Sandbox Code Playgroud)

数据库收到select * from Products where Id = @id错误的命令.

为什么它附加s到产品?

我已尝试过其他表并获得相同的结果.

c# dapper

9
推荐指数
2
解决办法
4844
查看次数

Dapper使用奇异的表名

我试验了Dapper和Dapper.Contrib.我有以下课程:

public class Customer
{
    public int Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime DateOfBirth { get; set; }
    public bool Active { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

它被映射到多个表" Customers".是否有一种简单的方法可以让Dapper为所有表使用单个表名?

c# dapper

9
推荐指数
1
解决办法
5243
查看次数

标签 统计

dapper ×4

c# ×2

.net ×1

orm ×1