5
我想使用dapper查询dbf文件。在我的文件example.dbf我有两列:Dapper:无法从dbf解析字符串(错误解析列)
- 值 - 类型NUMERIC
- 名称 - 类型CHARACTER
我写的类ExampleDbf
class ExampleDbf
{
public int Value { get; set; }
public string Name { get; set; }
}
现在我想写两个简单查询
var listOne = connection.Query<ExampleDbf>("SELECT value FROM Example");
var listTwo = connection.Query<ExampleDbf>("SELECT name, value FROM Example");
那么listOne都OK,但是当我执行listTwo我有以下System.Data.DataException:
Additional information: Error parsing column 0 (name=System.Byte[] - Object)
当我使用标准的DataReader我必须写类似的东西
example.name = System.Text.Encoding.ASCII.GetString((byte[])reader["name"]).Trim();
当然我可能喜欢写东西这样的:
class ExampleDbf2
{
public int Value { get; set; }
public byte[] Name { get; set; }
public string StringName
{
get
{
return System.Text.Encoding.ASCII.GetString((byte[])Name).Trim();
}
}
}
所以现在它的工作原理
var listTwo = connection.Query<ExampleDbf2>("SELECT name, value FROM Example");
但是这个解决方案非常难看,也许有人有更好的解决方案。
来自DB的数据是字符数据;小巧玲珑从来不会为你做出编码决定:这个问题太不明了......如果你想要的话,你可以使用垫片属性...... –