Helllo,我收到了这个错误:
CS0246:找不到类型或命名空间名称“DataClasses1DataContext”(您是否缺少using指令或程序集引用?)
对于这个.aspx文件:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class WebApplication1_admin_Places : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
DataClasses1DataContext db = new DataClasses1DataContext();
var query = (from m in db.Places orderby m.Name select m);
PlacesList.DataSource = query;
PlacesList.DataBind();
}
}
问题是,在/文件夹中我可以访问数据库,但在/ admin文件夹中我收到此错误。
我做错了什么?
修改
CS0012:类型'System.Data.Linq.DataContext'在未引用的程序集中定义。您必须添加对程序集'System.Data.Linq,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'的引用。
这是什么意思?
答案 0 :(得分:5)
有几个地方可以开始:
修改强>
看起来这是一个配置问题。配置可能表示msl(模型)文件位于当前目录中,它位于根目录中。因此,当你在root上时它会起作用,但是当你在管理员时却不行。
请参阅:MetadataException when using Entity Framework Entity Connection了解类似问题。
答案 1 :(得分:5)
当加载程序集的尝试是由.ASPX标记引起时,即使程序已经引用该程序集,也会发生此错误!传递here时提到的项目范围的解决方案是将程序集添加到web.config assemblies Element for compilation中的程序集列表中,例如。
<compilation>
<assemblies>
<add assembly="System.Data.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
...
基于每页的替代方法是@ Assembly页面属性,但必须将其添加到每个页面,导致ASP.NET运行时尝试加载缺少的程序集类型。
答案 2 :(得分:1)
你是什么意思“ on / folder我可以访问数据库,但在/ admin文件夹我得到这个错误”?
使用哪个文件夹 - 上下文使用配置文件中的连接字符串(例如web.config)没有区别。相对/绝对路径在这里不适用,这是代码,而不是资源。
您是否将数据上下文与Web应用程序分开进行组装?
您需要导入名称空间,就像其他所有内容一样:
E.g
using YourApplication.Data;
答案 3 :(得分:1)
刚刚弹出了同样的错误消息。通过VS 2010引用对话框将项目中的引用添加到System.Data.Linq中得到解决。
答案 4 :(得分:0)
添加对模型的引用。 在C#
using ProjectName.Models;
然后在Application_Start()
例程中添加以下行
Database.SetInitializer<MyMVCTestContext>(null);
(此处MyMvcTestContext将是您的数据上下文名称)
检查以下列表以确保您没有遗漏任何参考。您可能需要所有这些或不需要。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Http;
using System.Web.Mvc;
using System.Web.Optimization;
using System.Web.Routing;
using System.Web.ModelBinding;
using System.Data;
using System.Data.Entity;
using MyMVCTest.Models;
答案 5 :(得分:0)
如果这个项目是LinqToSql Project并且数据上下文是&#34; DataClasses1DataContext&#34; dbml文件名应为&#34; DataClasses1.dbml&#34;
如果.dbml文件id&#34; MyLinqToSql.dbml&#34; datacontext名称应为MyLinqToSqlDataContext。
请检查.dbml文件名并匹配databcontext名称,如上所述。
此外,如果您开始输入,您将在IntelliSense中自动获取该名称。
答案 6 :(得分:0)
所以我的修复是将LINQTOSQL添加到我用户+的文件夹中 在webConfig文件中添加此内容:
18 06 2016 09:42:33.320
答案 7 :(得分:0)
导航到Web项目的“参考”节点查找对其的引用 System.Data.Linq在属性中打开VS属性窗口 窗口,更改复制本地:假为真在此之前, System.Data.Linq.dll未被复制到bin目录中。 (手动将其复制到bin目录中也解决了错误)