System.Web.Routing.RouteCollection和System.Web.Mvc.RouteCollectionExtensions都具有相同的简单名称' IgnoreRouteInternal'

时间:2015-05-31 04:36:26

标签: c# asp.net-mvc entity-framework asp.net-mvc-routing notsupportedexception

我有一个ASP.NET MVC项目,我在近两个月内还没有完成任务。只要我不更改任何代码,浏览器中的调试就可以正常工作。我修改任何代码的那一刻,即使添加空格,我也会收到此错误:

An exception of type 'System.NotSupportedException' occurred in EntityFramework.dll but was not handled in user code

Additional information: The type 'System.Web.Routing.RouteCollection+IgnoreRouteInternal' and the type 'System.Web.Mvc.RouteCollectionExtensions+IgnoreRouteInternal' both have the same simple name of 'IgnoreRouteInternal' and so cannot be used in the same model. All types in a given model must have unique simple names. Use 'NotMappedAttribute' or call Ignore in the Code First fluent API to explicitly exclude a property or type from the model.

此行发生异常:

var item = Cards.FirstOrDefault(s => s.name == cardName);

我唯一能想到的是改变路由设置可能是我在我再次选择这个项目之前做的最后一件事,据我所知,一切都很正常。另一件事是我正在使用TortiseGit和bitbucket,但我看不出会有什么影响。我有另一个类似设置的项目没有问题。

如果我犯了一个错误,这是我的RouteConfig.cs

using System;
using System.Web.Mvc;
using System.Web.Routing;

namespace houseOfCards
{
    public class RouteConfig
    {
        public static void RegisterRoutes(RouteCollection routes)
        {
            routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

            routes.MapRoute(
                name: "Default",
                url: "{controller}/{action}/{id}",
                defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
            );

            routes.MapRoute(
                name: "Hello",
                url: "{controller}/{action}/{name}/{id}"
                );
        }
    }
}

我不知道如何解决这个问题,我们非常感谢任何建议。

1 个答案:

答案 0 :(得分:1)

我遇到了类似的问题,经过三天的调查和调试后我设法解决了这个问题,错误信息往往有点误导,因为它只涉及System.Web.Routing.RouteCollection和{{1} }类,这导致人们认为路线与它有关,但它们不会,至少在我的情况下。

在我的情况下,我错误地将实体的导航属性声明为System.Web.Mvc.RouteCollectionExtensions,因此实体框架对我想要注册的类感到困惑。

因此,我建议在模型中搜索任何名为保留字的属性或类,或者不属于模型的类,并重命名。

我希望它有所帮助