无法转换类型“System.String”输入“System.Object”。 LINQ to Entities 仅支持转换实体数据模型基元类型
我正在使用 EF 4,但当我尝试订购列表时,它给了我错误。
Unable to cast the type 'System.String' to type 'System.Object'. LINQ to Entities only supports casting Entity Data Model primitive types.
这是我通过输入属性名称来获取表达式的代码,下面的示例获取客户名称
var param = Expression.Parameter(typeof(Customer), "N");
var sortExpression = Expression.Lambda<Func<T, object>>
(Expression.Convert(Expression.Property(param, "Name"), typeof(object)), param);
,我的 EF 代码是
GetObjectSet<T>().AsQueryable().OrderBy(sortExpression).Skip(0).Take(5);
我知道这是 EF 的某种转换问题,因为它可以在没有 EF 的情况下工作,但当我将其与 EF 连接起来。是否有解决方法或其他原因,因为我不想使用 LINQ。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我遇到了同样的问题,并通过以下代码解决:
I've encountered the same problem, and solved by the following code:
我相信这个答案解决了您想要做的事情以最简单的方式。
I believe this answer addresses what you're trying to do in the easiest possible way.
我遇到了同样的问题,解决它的方法是:
}
然后你可以在执行查询时调用它:
我希望这对你有帮助!
I had the same problem, and the method that solved it was:
}
Then you can call it when you perform the query as:
I hope this helps you!