string query = $@"SELECT m.* FROM Table1";
return await dbConnection.QueryAsync<Job>();
在Oracle数据库表Table1
中包含许多列,我不想指定所有列。列在UPPERCASE
中返回,但在.NET中我们使用CamelCase(IsActive
等)。结果,大写列永远不会映射到代码中的CamelCase。
(实际上查询更复杂,还有一些自定义地图和splitOn选项)。
是否可以用Dapper解决?
答案 0 :(得分:1)
AFAIK Dapper区分大小写(如C#所示)。您应该使用FluentMap,它提供了将数据库列映射到类属性所需的所有灵活性:
答案 1 :(得分:1)
Dapper的SqlMapper应该 不区分大小写
您可以使用以下方法进行测试:
public class Result
{
public int Id { get; set; }
public string Value { get; set; }
}
[TestFixture]
public class Tests
{
[Test]
public async Task TestCaseSensitivity()
{
using (var conn = new SqlConnection(@"Data Source=.\sqlexpress; Integrated Security=true; Initial Catalog=test"))
{
var result = await conn.QueryFirstAsync<Result>("select ID = 1, VALUE = 'hello world'");
Assert.That(result.Id, Is.EqualTo(1));
Assert.That(result.Value, Is.EqualTo("hello world"));
}
}
}