找不到与名为***的控制器匹配的类型

时间:2016-11-02 13:34:38

标签: c# asp.net asp.net-mvc odata

我正在使用oData 4开发ASP.NET MVC应用程序。直到昨天他们的项目都在VB.NET中。我们现在终于尝试从VB.NET迁移到C#。我试图将2个用C#编写的控制器引入到项目中,并且在两个实例中都接收到了可怕的"没有找到与控制器名称相匹配的类型#"尝试访问任一控制器时出错。

第一个是新控制器。它看起来像这样:

using System.Data.Entity.Infrastructure;
using System.Net;
using System.Web.Http;
using System.Web.OData;

namespace Controllers
{
    public class ORDER_LINE_SUMMARYController : ODataController
    {
        private Entities db = new Entities();
        [EnableQuery()]
        public IQueryable<ORDER_LINE_SUMMARY> GetORDER_LINE_SUMMARY()
        {
            return db.ORDER_LINE_SUMMARY;
        }
        [EnableQuery()]
        public SingleResult<ORDER_LINE_SUMMARY> GetORDER_LINE_SUMMARY([FromODataUri()] decimal key)
        {
            return SingleResult.Create(db.ORDER_LINE_SUMMARY.Where(ORDER_LINE_SUMMARY => ORDER_LINE_SUMMARY.ID == key));
        }
        protected override void Dispose(bool disposing)
        {
            if ((disposing))
            {
                db.Dispose();
            }
            base.Dispose(disposing);
        }
        private bool ORDER_LINE_SUMMARYExists(decimal key)
        {
            return db.ORDER_LINE_SUMMARY.Count(e => e.ID == key) > 0;
        }
    }
}

为了确保我没有错过合并这个新控制器的步骤,我还尝试用C#控制器替换现有的VB.NET控制器并收到相同的错误。除了实体名称,代码基本上与上面的代码完全相同,所以为了简洁起见,我不在这里提出它。

一个有趣的说明,我认为这与潜在问题密切相关。当我添加新的C#控制器来替换现有的VB.NET时,我还没有从项目中删除VB.NET控制器。但是,两者的类名显然是相同的; .NET编译器没有错误或以其他方式抱怨这一点。我怀疑这个问题可能与尝试在同一个程序集中混合使用C#和VB.NET有关。

任何建议或想法将不胜感激。 TIA。

0 个答案:

没有答案