我一直在尝试在我的应用程序中使用动态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的正确方法吗?我不敢相信这个框架会以这种方式实现,也许我忽略了一些东西?
谢谢,马特