MVC,Views和System.Data.Entity

问题描述:

我有一个存储库项目被添加到我的MVC应用程序。MVC,Views和System.Data.Entity

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

因此,如果我没有添加引用,以下失败;

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

现在我想该列表传递给我的局部视图,一个有限体积内,它位于和它是我传递给局部视图的有限体积法。

所以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页面顶部的名称空间。

想法?

EDIT

\ nasfile02 \的Visual Studio 2010 \项目\ TOM \ TOM \视图\商店\ 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; } 
    } 
} 
+0

什么是你确切的错误”重新获得?你也可能想看看[剃刀标签](http://weblogs.asp.net/scottgu/archive/2010/07/02/introducing-razor.aspx)。使用''有点过时了。 – JodyT 2013-03-07 23:17:20

+0

发布的错误和Razor一样,但确实如此,但不在我的手中 – griegs 2013-03-07 23:26:26

+0

您向web.config添加了什么内容以及您使用的是哪个版本的.NET? – JodyT 2013-03-07 23:33:19

你应该确保在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://*.com/a/3611040/1737862