我们有一个使用Orchard CMS v1.8构建的网站。我们有几个实例,管理内容的人无法保存对页面的更改。他们收到以下错误。
发生了未处理的异常,请求已终止。请刷新页面。如果错误仍然存在,请返回 Sequence包含多个匹配元素 System.InvalidOperationException:Sequence在C:\ Orchard \中的Orchard.ContentManagement.DefaultContentManager.BuildNewVersion(ContentItem existingContentItem)中的System.Linq.Enumerable.SingleOrDefault [TSource](IEnumerable
1 source, Func
2谓词)中包含多个匹配元素src \ Orchard \ ContentManagement \ DefaultContentManager.cs:Orchard.ContentManagement.DefaultContentManager.Get(Int32 id,VersionOptions options,QueryHints提示)中的第450行位于c:\ Orchard \ src \ Orchard \ ContentManagement \ DefaultContentManager.cs:第234行,位于Orchard System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod中的.Core.Contents.Controllers.AdminController.EditPOST(Int32 id,String returnUrl,Action1 conditionallyPublish) in c:\Orchard\src\Orchard.Web\Core\Contents\Controllers\AdminController.cs:line 308 at lambda_method(Closure , ControllerBase , Object[] ) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary
2个参数)(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary2 parameters) at System.Web.Mvc.Async.AsyncControllerActionInvoker.<BeginInvokeSynchronousActionMethod>b__39(IAsyncResult asyncResult, ActionInvocation innerInvokeState) at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult
2 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocat上的System.Web.Mvc.Async.AsyncControllerActionInvoker.EndInvokeActionMethod(IAsyncResult asyncResult)中的.CallEndDelegate(IAsyncResult asyncResult) system.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters中的ionWithFilters.b__3f()。在System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters。&lt;&gt; c__DisplayClass48.b__41()at。 System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters&LT;&GT; c__DisplayClass48.b__41()
我可以做些什么来消除SingleOrDefault()调用中返回的额外记录?我不知道Orchard背后的数据库结构足以找到&#34;内容记录&#34;但如果我能找到它们,我可以删除额外的记录。
谢谢!
答案 0 :(得分:2)
此错误的原因是您拥有多个版本的同一内容项且值为Latest = 1
(果园使用此值来确定内容项的最新版本),要解决此问题,您可以运行以下命令查询以查找重复版本:
SELECT *
FROM Orchard_Framework_ContentItemVersionRecord
WHERE ContentItemRecord_id = @Id
然后确保只有一条值为Latest = 1
的记录,published = 1
和Number
按顺序排列,没有重复。
仅供参考,在查询中使用值Id
作为有错误的内容项。