小编Mat*_*att的帖子

OrderBy("it."+ sort) - LINQ to Entity框架中的硬编码?

我一直在尝试在我的应用程序中使用动态LINQ to Entity来在运行时指定OrderBy属性.但是,当使用大多数文档中描述的代码时:

var query = context.Customer.OrderBy("Name");
Run Code Online (Sandbox Code Playgroud)

我收到以下例外:

System.Data.EntitySqlException:无法在当前范围或上下文中解析"名称".确保所有引用的变量都在范围内,加载了所需的模式,并正确引用了名称空间.

经过多次搜索,我找到了这个MSDN页面:

http://msdn.microsoft.com/en-us/library/bb358828.aspx

其中包括以下代码示例:

ObjectQuery<Product> productQuery2 = productQuery1.OrderBy("it.ProductID");
Run Code Online (Sandbox Code Playgroud)

这促使我将代码更改为以下内容:

var query = context.Customer.OrderBy("it.Name");
Run Code Online (Sandbox Code Playgroud)

在此之后,代码完美地运行.有人能够确认这确实是让OrderBy使用LINQ to Entity的正确方法吗?我不敢相信这个框架会以这种方式实现,也许我忽略了一些东西?

谢谢,马特

linq entity sql-order-by

5
推荐指数
1
解决办法
2627
查看次数

标签 统计

entity ×1

linq ×1

sql-order-by ×1