我有一个客户实体,如下所示:
[Column("Customer_id")]
public int CustomerID { get; set; }
[Column("Customer_Name")]
public string CustomerName { get; set; }
[Column("Database_name")]
public string DatabaseName { get; set; }
我将[Column]属性设置为大写道具名称。问题是,当我尝试将我在SQL查询中收到的一些数据序列化到此实体时,序列化后得到的数据为空,因为序列化机制引用了" inline"属性'名字,而不是我在属性中给出的名称。
我的SQL查询:
var query = "SELECT Customer_id, Customer_Name, Database_name FROM xxx";
return await context.Database.SqlQuery<Customer>(query).ToListAsync();
任何人都知道如何在不删除属性的情况下解决它?
答案 0 :(得分:1)
在我的SQL SELECT查询中,我使用“as ..”并添加了与我在[Column]属性中给出的新名称相对应的名称。 所以现在它看起来像这样:
var query = "SELECT Customer_id as CustomerID, Customer_Name as CustomerName, Database_name as DatabaseName FROM xxx";
现在序列化工作正常!