这很奇怪,而不仅仅是错误说的是什么,所以请仔细阅读。
我知道我不能投射到一个实体而我不是想这样做,但出于某种原因,运行时认为我是,我无法弄清楚原因。
背景: 这段代码正在工作。我正在向有问题的班级投射,没问题。我开始调整一些事情,当我开始收到错误时,我退出了我正在处理的更改,但我仍然遇到问题。
我想我所做的事情已经导致运行时认为ProtocolView类不是实体。
以下是控制器的动作源。这段代码正在运行VERBATIM。
public ActionResult Index(string searchTerm = null)
{
var model =
(from p in db.t_Protocol
join pt in db.t_ProtocolType on p.ProtocolTypeId equals pt.ProtocolTypeID
orderby p.Protocol, pt.ProtocolTypeOrdinal
select new ProtocolView
{
ProtocolId = p.ProtocolId,
Protocol = p.Protocol,
ProtocolType = pt.ProtocolType,
IsAdmission = p.IsAdmission,
IsReleased = p.IsReleased
});
if (searchTerm != null && searchTerm.Length > 0)
{
model = model.Where(p => p.Protocol.StartsWith(searchTerm));
}
return View(model);
}
该观点期待:@model IEnumerable<ECM.Models.ProtocolView>
该视图正在做一个简单的foreach(这基本上是锅炉板代码)。
这是类定义。我确实在这里进行了一些更改,但已删除它们。我不是100%我做的一切都是正确的,但这是一个非常基本的类def,我无法看到任何可能导致错误的内容。
namespace ECM.Models
{
public class ProtocolView
{
[Key]
public Guid ProtocolId { get; set; }
public string Protocol { get; set; }
[Display (Name = "Protocol Type")]
public string ProtocolType { get; set; }
[Display (Name = "Admission")]
public byte IsAdmission { get; set; }
[Display (Name = "Released")]
public byte IsReleased { get; set; }
}
}