我有以下代码
class Program
{
static void Main(string[] args)
{
static void Main(string[] args)
{
DapperExtensions.DapperExtensions.DefaultMapper = typeof(CodeCustomMapper);
string sql = "select UserID,Name as SName , Email ,Email as wmail from dbo.[User]";
using (SqlConnection connection = new SqlConnection(conn))
{
var result = connection.Query<User>(sql
, commandType: CommandType.Text);
}
}
}
public class CodeCustomMapper: ClassMapper<User>
{
public CodeCustomMapper()
{
base.Table("User");
Map(f => f.UserID).Key(KeyType.Identity);
Map(f => f.Name).Column("SName");
Map(f => f.Name).Column("TName");
Map(f => f.EmailID).Column("wmail");
Map(f => f.EmailID).Column("Email");
}
}
对于manulaly映射列,输出为NULL。 即使我已经分配了默认映射器。是写的做法吗?
使用实体属性手动映射数据库列的任何其他方式吗?
请任何人帮忙
答案 0 :(得分:2)
看起来你只是使用了错误的扩展方法。
Dapper Extensions是一个小型库,通过添加来补充Dapper POCO的基本CRUD操作(获取,插入,更新,删除)。
尝试使用connection.Get<User>