我有一个带有名称和描述属性的类别类:
public class Category
{
public Category(){}
public string name { get; set; }
public string description { get; set; }
}
我有一个子类,它有一个类别作为父类,但有一个额外的属性,即ccolor。
public partial class Car : Category
{
public Car()
{
}
public string color { get; set; }
}
现在我需要从sql查询中访问color属性:
public IEnumerable<Category> GetCategory(string categoryName)
{
return db.Database.SqlQuery<Category>("SELECT * FROM " + categoryName).ToList();
}
输出结果只有名称和描述值,但是我如何访问汽车特有的颜色或者在param中发送的表格(不要担心我的代码会避免SQL注入:))?知道我的车牌里已经有了颜色值。
或者有一种方法来转换动态对象:
Object DynamicObject = "Car" // passed in params; SqlQuery<DynamicObject>("SELECT * FROM " + categoryName);
这将解决我的问题
谢谢。
答案 0 :(得分:1)
您需要修改查询:
return db.Database.SqlQuery<Car>("SELECT * FROM CAR").ToList();
答案 1 :(得分:0)
当您查询CAR
表时,您的输出被反序列化为Category
个对象。由于Category
没有{/ 1}}字段,因此不会创建该字段。
问题也是多态性问题 - 即使您查询的表格与color
匹配且您的Car
是{a}},您的查询图层也不知道返回Car
个对象类型为Car
的对象的有效退货 - 您要求Category
这就是它所创建的内容。