首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用context.Object.SqlQuery时返回匿名类型

使用context.Object.SqlQuery时返回匿名类型
EN

Stack Overflow用户
提问于 2015-06-11 19:30:18
回答 1查看 143关注 0票数 0

假设我想选择类别中返回的第一个产品,但是我需要直接传递一个sql字符串。注意我是如何指定context.Products.SqlQuery的。即使我没有选择查询中的所有产品字段,我也认为这是可行的。我真的需要选择一个匿名类型,然后将其转换为产品吗?

我得到的错误是:数据读取器与指定的'AppModel.Product‘不兼容。类型的成员'InsertDate‘在数据读取器中没有同名的相应列。

下面是我的代码:

代码语言:javascript
复制
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;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-11 19:33:28

实体框架不能根据SQL语句的结果构造整个Product,因为您只返回这两个字段。如果你这样做的话,它应该会起作用:

代码语言:javascript
复制
sql.AppendLine("Select * ");
sql.AppendLine("FROM Product ");
...

或者手动指定所有字段。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30789813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档