由于对象的当前状态,操作无效

本文关键字:状态 操作 无效 于对象 对象 | 更新日期: 2023-09-27 18:04:32

. NET Core MVC应用程序,我得到以下LINQ查询引用其他LINQ查询上述错误。为了本文的简单性,我修改了这里的代码,因为实际的查询太长太复杂。问题:什么可能是错误的原因,我应该在哪里进一步调试这个问题?如果可以帮助的话,下面显示了错误的详细信息。

ViewModel :

public class MyViewModel
{
    public string Prop1 { get; set; }
    public int Prop2 { get; set; }
}
控制器

:

public ActionResult Index()
{
    var vm = (from q5 in LINQ_Qry5
             join q4 in LINQ_Qry4 on q5.SomeID equals q4.SomeID
             select new MyViewModel { Prop1= q5.property1, Prop2 = q4.property2}).ToList();
            return View(vm);
}
<<p> 错误细节/strong>:
  Message=Operation is not valid due to the current state of the object.
  Source=System.Linq.Expressions
  StackTrace:
       at System.Linq.Expressions.MethodCallExpression2.GetArgument(Int32 index)
       at System.Dynamic.Utils.ListArgumentProvider.get_Item(Int32 index)
       at Microsoft.EntityFrameworkCore.Query.ExpressionVisitors.Internal.QueryFlattener.Flatten(MethodCallExpression methodCallExpression)
       at Microsoft.EntityFrameworkCore.Query.RelationalQueryModelVisitor.OptimizeJoinClause(JoinClause joinClause, QueryModel queryModel, Int32 index, Action baseVisitAction, MethodInfo operatorToFlatten, Boolean outerJoin)
       at Microsoft.EntityFrameworkCore.Query.RelationalQueryModelVisitor.VisitJoinClause(JoinClause joinClause, QueryModel queryModel, Int32 index)
       at Remotion.Linq.QueryModelVisitorBase.VisitBodyClauses(ObservableCollection`1 bodyClauses, QueryModel queryModel)
       at Remotion.Linq.QueryModelVisitorBase.VisitQueryModel(QueryModel queryModel)
       at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.VisitQueryModel(QueryModel queryModel)
       at Microsoft.EntityFrameworkCore.Query.RelationalQueryModelVisitor.VisitQueryModel(QueryModel queryModel)
       at Microsoft.EntityFrameworkCore.Query.Internal.SqlServerQueryModelVisitor.VisitQueryModel(QueryModel queryModel)
       at Microsoft.EntityFrameworkCore.Query.ExpressionVisitors.RelationalEntityQueryableExpressionVisitor.VisitSubQuery(SubQueryExpression expression)
       at Microsoft.EntityFrameworkCore.Query.ExpressionVisitors.ExpressionVisitorBase.Visit(Expression node)
       at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.ReplaceClauseReferences(Expression expression, IQuerySource querySource, Boolean inProjection)
       at Microsoft.EntityFrameworkCore.Query.RelationalQueryModelVisitor.CompileMainFromClauseExpression(MainFromClause mainFromClause, QueryModel queryModel)
       at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.VisitMainFromClause(MainFromClause fromClause, QueryModel queryModel)
       at Remotion.Linq.QueryModelVisitorBase.VisitQueryModel(QueryModel queryModel)
       at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.VisitQueryModel(QueryModel queryModel)
       at Microsoft.EntityFrameworkCore.Query.RelationalQueryModelVisitor.VisitQueryModel(QueryModel queryModel)
       at Microsoft.EntityFrameworkCore.Query.Internal.SqlServerQueryModelVisitor.VisitQueryModel(QueryModel queryModel)
       at Microsoft.EntityFrameworkCore.Query.EntityQueryModelVisitor.CreateQueryExecutor[TResult](QueryModel queryModel)
    --- End of stack trace from previous location where exception was thrown ---
       at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

由于对象的当前状态,操作无效

我本来想把这个作为注释的,但是它写了太多字符。

无论如何,从我的谷歌搜索这个错误,似乎问题在于任何一个(或一些)你的变量null

请注意以下几点:

  1. 您的join不返回null或空序列
  2. 您的q5q4property1property2存在且不为空
  3. 也许还确保View(vm)不是问题,当vm为空或null。

我查看了一些链接:

UpdateException: Operation is not valid due to…

MonoTouch,LINQ -由于对象

的当前状态,操作无效
var vm = (from q5 in LINQ_Qry5
             join q4 in LINQ_Qry4 on q5.SomeID equals q4.SomeID
             select new MyViewModel() { Prop1= q5.property1, prop2 = q4.property2}).ToList();
            return View(vm);
相关文章: