2

我有一个添加到我的 MVC 应用程序的存储库项目。

在 MVC Web 应用程序的 C# 代码中,我必须添加对 System.Data.Entity 的引用,以便我可以从我的存储库访问对象。

因此,如果我没有添加参考,则以下失败;

DataRepository<Store> repo = new DataRepository<Store>();
List<Store> allSorted = repo.All(x => x.name);

现在我想将该列表传递给我的局部视图,它位于 FVM 中,它是我传递给局部视图的 FVM。

所以index.aspx代码;

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<StoresFVM>" %>

<% Html.RenderPartial("StoreList", Model.StoreListFVM); %>

以及 ASCX 代码;

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<StoreListFVM>" %>

<%        
    SelectList storeList = new SelectList(Model.Stores.Select(x => new { Value = x.number, Text = x.name }),"Value","Text");
%>

<%= Html.DropDownList("SelectedStore", storeList) %>

但是,我收到一条错误消息,通知我需要在 ascx 中包含对 System.Data.Entity 的引用。我不明白为什么。

我尝试将命名空间添加到 web.config 文件中,并尝试在 ascx 页面的顶部导入命名空间。

想法?

编辑

\nasfile02\Visual Studio 2010\Projects\TOM\TOM\Views\Stores\PartialViews\StoreList.ascx(4):错误 CS0012:类型 'System.Data.Objects.DataClasses.EntityObject' 是在不是参考。您必须添加对程序集“System.Data.Entity,Version=4.0.0.0,Culture=neutral,PublicKeyToken=b77a5c561934e089”的引用。

编辑

namespace TOM.FormViewModels
{
    public class StoresFVM
    {
        public StoreListFVM StoreListFVM { get; set; }
    }
}

namespace TOM.FormViewModels
{
    public class StoreListFVM
    {
        public List<Store> Stores { get; set; }
    }
}
4

1 回答 1

17

您应该确保 web.config 如下所示:

<compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="System.Data.Entity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
  </assemblies>
</compilation>

也描述在:https ://stackoverflow.com/a/3611040/1737862

于 2013-03-08T00:33:16.337 回答