嗨这是我的行动方法
public ActionResult Welcome(string name, int numTimes=1)
{
var customerEntityColl = new EntityCollection(new CustomerEntityFactory());
var customerEntity = new CustomerEntity(1);
using(var adapter = new DataAccessAdapter())
{
adapter.FetchEntityCollection(customerEntityColl,null);
}
return View(customerEntityColl);
}
这是我的观点
@model Data.HelperClasses.EntityCollection<Data.EntityClasses.CustomerEntity>
@{
Layout = "~/Views/Shared/_Layout.cshtml";
}
@{
}
<p>This is our welcome view and the sender name is @ViewBag.Name and sent @ViewBag.NumTimes times this request</p>
@foreach (var item in Model)
{
<p>@Html.DisplayFor(modelItem=> item.FirstName)</p>
}
现在,当我运行此动作方法时,它会给我以下错误,有人可以帮助解决它..
传递到字典中的模型项是类型的 'Data.HelperClasses.EntityCollection',但是这个字典需要一个 型号项目 'Data.HelperClasses.EntityCollection`1 [Data.EntityClasses.CustomerEntity]'。
由于
答案 0 :(得分:1)
是的,您正在实例化EntityCollection
,而不是模型所期望的EntityCollection<CustomerEntity>()
。
您只需将new EntityCollection(new CustomerEntityFactory())
替换为new EntityCollection<CustomerEntity>();
(假设您未更改CustomerEntityFactory中的任何行为)
此外,您应该使用谓词获取实体,当您使用适配器模型时,这不会执行任何操作:
var customerEntity = new CustomerEntity(1);
这将只获取数据库中的所有客户:
adapter.FetchEntityCollection(customerEntityColl,null);