【发布时间】:2015-06-11 19:30:18
【问题描述】:
假设我想选择一个类别中返回的第一个产品,但我需要直接传递一个 sql 字符串。请注意我是如何指定 context.Products.SqlQuery 的。我认为即使我没有选择查询中的所有产品字段,这也会起作用。我真的必须选择匿名类型然后将其转换为产品吗?
我得到的错误是: 数据读取器与指定的“AppModel.Product”不兼容。类型的成员“InsertDate”在数据读取器中没有同名的对应列。
下面是我的代码:
StringBuilder sql = new StringBuilder();
sql.AppendLine("SELECT Id, ProductName ");
sql.AppendLine("FROM Product ");
sql.AppendLine("WHERE CategoryId=@CategoryId ");
var retval = context.Products.SqlQuery(sql.ToString(),
new SqlParameter("@CategoryId", categoryId)).FirstOrDefault();
return retval;
【问题讨论】:
标签: c# sql linq entity-framework