[英]Dapper: Not able to parse string from dbf(Error parsing column)
我想使用dapper來查詢dbf文件。 在我的文件example.dbf中,我有兩列:
我寫了類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沒問題,但是當我執行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");
但這個解決方案非常難看,也許有人有更好的解決方案。
您始終可以返回動態,然后將其映射到對象並在對象初始化期間執行轉換操作。
var listTwo = connection.Query<dynamic>("SELECT name, value FROM Example")
.Select(x => new ExampleDbf
{
Value = x.value,
Name = System.Text.Encoding.ASCII.GetString((byte[])x.name).Trim()
}).ToList();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.