我一直在 Silverlight 应用程序中使用 Linq 查询,它只返回包含字段 OptionARMRunId(身份)的最大值的表行。在 LinqPad 中执行时,查询运行良好并返回正确的行。但是,当在我的 Silverlight 应用程序中使用时,应用程序永远不会越过加载屏幕(当状态百分比变为 100% 时,蓝色圆圈继续旋转,令人作呕)并且我在浏览器中收到错误消息。我已经包含了原始的 Linq 语句,它出现在我的查询中的语句,以及下面的 ie 错误。
Linq 语句(正常工作):
from OptionARMProjection in OptionARMProjections.Where(row => row.OptionARMRunId == OptionARMProjections.Max(r => r.OptionARMRunId))
select OptionARMProjection
C# 类中的 Linq 语句(运行 silverlight 应用程序时导致错误):
crocodileEntities proxy = new crocodileEntities(new Uri("CrocodileDbDataService.svc", UriKind.Relative));
var ProjectionsQuery = from OptionARMProjections in proxy.OptionARMProjections.Where(row => row.OptionARMRunId == proxy.OptionARMProjections.Max(r => r.OptionARMRunId))
select OptionARMProjections;
在 ie8 中收到错误:
网页错误详情
用户代理:Mozilla/4.0(兼容;MSIE 8.0;Windows NT 6.1;Trident/4.0;SLCC2;.NET CLR 2.0.50727;.NET CLR 3.5.30729;.NET CLR 3.0.30729;Media Center PC 6.0;InfoPath。 2;Zune 4.0;OfficeLiveConnector.1.4;OfficeLivePatch.1.3;.NET4.0C;.NET4.0E) 时间戳:2010 年 1 月 20 日星期三 03:06:13 UTC
消息:Silverlight 2 应用程序中的未处理错误不支持方法“Max”。在 System.Data.Services.Client.ResourceBinder.VisitMethodCall(MethodCallExpression mce) 在 System.Data.Services.Client.ExpressionVisitor.Visit(Expression exp) 在 System.Data.Services.Client.DataServiceExpressionVisitor.Visit(Expression exp) 在 System .Data.Services.Client.ExpressionVisitor.VisitBinary(BinaryExpression b) 在 System.Data.Services.Client.ResourceBinder.VisitBinary(BinaryExpression b) 在 System.Data.Services.Client.ExpressionVisitor.Visit(Expression exp) 在 System.Data System.Data.Services.Client.ExpressionVisitor.VisitLambda(LambdaExpression lambda) 在 System.Data.Services.Client.ExpressionVisitor 的 .Services.Client.DataServiceExpressionVisitor.Visit(Expression exp)。
1 original) at System.Data.Services.Client.ExpressionVisitor.VisitMethodCall(MethodCallExpression m) at System.Data.Services.Client.ResourceBinder.VisitMethodCall(MethodCallExpression mce) at System.Data.Services.Client.ExpressionVisitor.Visit(Expression exp) at System.Data.Services.Client.DataServiceExpressionVisitor.Visit(Expression exp) at System.Data.Services.Client.ResourceBinder.AnalyzeProjection(MethodCallExpression mce, Boolean matchMembers, Expression& e) at System.Data.Services.Client.ResourceBinder.VisitMethodCall(MethodCallExpression mce) at System.Data.Services.Client.ExpressionVisitor.Visit(Expression exp) at System.Data.Services.Client.DataServiceExpressionVisitor.Visit(Expression exp) at System.Data.Services.Client.ResourceBinder.Bind(Expression e) at System.Data.Services.Client.DataServiceQueryProvider.Translate(Expression e) at System.Data.Services.Client.DataServiceQuery
1.get_QueryComponents() 在 System.Data.Services.Client.DataServiceRequest.CreateResult(对象源,DataServiceContext 上下文,AsyncCallback 回调,对象状态)在 System.Data.Services.Client.DataServiceQuery`1.BeginExecute(AsyncCallback 回调,对象状态) 在 OptionARMChart.OptionARMUniverse.GetOptionArmProjectionsASync() 在 OptionARMChart.MainPage..ctor()
在 OptionARMChart.App.Application_Startup(Object sender, StartupEventArgs e) 在 MS.Internal.CoreInvokeHandler.InvokeEventHandler(Int32 typeIndex, Delegate handlerDelegate, Object sender, Object args) 在 MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName) 行:1 字符:1 代码:0 URI: http://localhost:5004/optionarmcharttestpage.aspx