使用[Column]属性序列化实体时,我会返回null数据

时间:2016-10-25 08:20:03

标签: c# sql entity-framework

我有一个客户实体,如下所示:

[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();

任何人都知道如何在不删除属性的情况下解决它?

1 个答案:

答案 0 :(得分:1)

在我的SQL SELECT查询中,我使用“as ..”并添加了与我在[Column]属性中给出的新名称相对应的名称。 所以现在它看起来像这样:

var query = "SELECT Customer_id as CustomerID, Customer_Name as CustomerName, Database_name as DatabaseName FROM xxx";

现在序列化工作正常!