如何在MVC 5中使用LLBLGen

时间:2014-01-12 19:17:11

标签: c# .net-4.5 asp.net-mvc-5 llblgenpro

嗨这是我的行动方法

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]'。

由于

1 个答案:

答案 0 :(得分:1)

是的,您正在实例化EntityCollection,而不是模型所期望的EntityCollection<CustomerEntity>()

您只需将new EntityCollection(new CustomerEntityFactory())替换为new EntityCollection<CustomerEntity>();(假设您未更改CustomerEntityFactory中的任何行为)

此外,您应该使用谓词获取实体,当您使用适配器模型时,这不会执行任何操作:

var customerEntity = new CustomerEntity(1);

这将只获取数据库中的所有客户:

adapter.FetchEntityCollection(customerEntityColl,null);