相关疑难解决方法(0)

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.Contrib 正确“单一化”表名?

我有一个 .Net Core 3.1 控制台应用程序。

在SQL Server数据库中,我的表是单数的,和我的POCO类一样,方便匹配和维护。

对于插入、更新和删除操作,我想使用Dapper.Contrib库。但是当我在生成的 SQL 查询中运行插入函数 Dapper 时,将表名复数化。

SQL 表“学生”:

CREATE TABLE Student
    StudentId int NOT NULL PRIMARY KEY,
    FirstName varchar(50),
    LastName varchar(50)
Run Code Online (Sandbox Code Playgroud)

C# 代码

public class Student
{
    public int StudentId {get; set;}
    public string FirstName {get; set;}
    public string LastName {get; set;}
}


class Program
{
    static void Main(string[] args)
    {
        var students = new List<Student>()
            {
                new Student { StudentId = 1, FirstName = "John", LastName = "Doe"},
                new Student { …
Run Code Online (Sandbox Code Playgroud)

c# dapper .net-core dapper-contrib

5
推荐指数
2
解决办法
900
查看次数

有没有办法使用 Dapper 的一些 .Insert 扩展方法将属性映射到列名?

我在这门课上遇到了以下挑战:

Public Class MyClass
    Property Id As Integer
    Property LastName as String
End Class
Run Code Online (Sandbox Code Playgroud)

数据库中对应的数据表有如下字段: Id (int, not null) Last-Name (nvarchar(80),null)

所以我需要映射MyClass.LastNameMyClasses.Last-Name并度过一段地狱般的时光......

当我编写自定义插入查询时,一切正常,但我想使用 Dapper 扩展包之一的 .Insert 语句。

我尝试过 Dapper.Contrib,但这会忽略我使用 Dapper.FluentMap 或使用 Dapper 本身的内置方法创建的映射Dapper.SetTypeMap

我尝试了 Dapper.FastCrud,但我无法弄清楚如何为其配置映射,尽管这个 API 看起来很有前途。

任何人?

dapper dapper-extensions dapper-fastcrud dapper-contrib

2
推荐指数
1
解决办法
2599
查看次数