我对这堂课有以下挑战:
Public Class MyClass
Property Id As Integer
Property LastName as String
End Class
数据库中的相应数据表具有以下字段:
Id (int, not null)
Last-Name (nvarchar(80),null)
所以我需要将MyClass.LastName
映射到MyClasses.Last-Name
,并且有一段时间......
当我编写自定义的Insert查询时,一切正常,但我想使用其中一个Dapper扩展包的.Insert语句。
我尝试了Dapper.Contrib,但这忽略了我使用Dapper.FluentMap创建的映射或使用Dapper.SetTypeMap
使用Dapper本身的内置方法。
我尝试过Dapper.FastCrud,但我无法弄清楚如何为它配置映射,尽管这个API看起来很有希望。
任何?
答案 0 :(得分:3)
所以,基本上这里的问题是属性名和列名不同。
您可以通过在SQL查询中为列名提供别名来使用Dapper处理此问题。我猜你已经尝试了这个,因为你说" 我写了一个自定义的插入查询"在你的问题中。
我从未使用过Dapper.Contrib或Dapper.FastCrud;所以我不能对此发表评论。但我认为必须有一种方法将属性映射到那里的列。
无论如何,我使用了DapperExtensions。有了它,您可以map使用各自的属性{<3}}不同的列名称,如下所示:
public sealed class MyClassMapper : ClassMapper<MyClass>
{
public MyClassMapper()
{
Table("MyTable");
Map(x => x.Id).Key(KeyType.WhatYouWant);
Map(x => x.LastName).Column("Last-Name");
AutoMap();
}
}
代码示例使用C#。你必须将它翻译成VB.NET。