Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linq to SQL intellisense不知道datacontext对象中的表_Sql_Linq_Linq To Sql_Datacontext - Fatal编程技术网

Linq to SQL intellisense不知道datacontext对象中的表

Linq to SQL intellisense不知道datacontext对象中的表,sql,linq,linq-to-sql,datacontext,Sql,Linq,Linq To Sql,Datacontext,我可以使用datacontext对象成功连接到数据库。我能够成功地读写数据库,但是我不能使用其他人似乎正在使用的相同语法 例如,当我需要表中的数据时,我必须执行以下操作: db = new UserDataDataContext(WebConfigurationManager.ConnectionStrings["UserData"].ConnectionString); IQueryable Users = db.GetTable<User>(); 但intellisense不将用

我可以使用datacontext对象成功连接到数据库。我能够成功地读写数据库,但是我不能使用其他人似乎正在使用的相同语法

例如,当我需要表中的数据时,我必须执行以下操作:

db = new UserDataDataContext(WebConfigurationManager.ConnectionStrings["UserData"].ConnectionString);
IQueryable Users = db.GetTable<User>();
但intellisense不将用户识别为db的属性,因此不会编译。Intellisense不显示任何看起来与数据库的表或实体相关的属性

以下是我收到的错误消息:

'System.Data.Linq.DataContext' does not contain a definition for 'User' and no extension method 'User' accepting a first argument of type 'System.Data.Linq.DataContext' could be found (are you missing a using directive or an assembly reference?)
下面是我正在做的事情的概述:

我使用了数据库设计器,拖动了我想要的表

然后我将其保存为dbml文件

然后它为我创建了扩展dataContext的新类,名为UserDataContext。然后,我实例化一个名为db的UserDataContext的新实例,从Web.config传入连接字符串

然后,我尝试编写一个linq查询,引用表名作为db对象的属性,但它无法识别它们


与我读过的所有例子相比,我似乎找不到我做错了什么。有什么想法吗?

我肯定您在某个地方有以下变量声明:

// variable is of type System.Data.Linq.DataContext
DataContext db;
将其更改为:

// variable is now of the appropriate subclass's type
UserDataDataContext db;
如果
db
是一个局部变量,并且您可以将初始化和声明内联在一起,那么最好使用隐式类型:

// db is implicitly of type UserDataDataContext
var db = new UserDataDataContext(WebConfigurationManager.ConnectionStrings["UserData"].ConnectionString);
C#是一种安全的静态类型语言。尽管您的引用引用的对象在运行时确实会具有您期望的属性,但编译器不会让该对象编译,因为变量的类型上不存在这些属性

// db is implicitly of type UserDataDataContext
var db = new UserDataDataContext(WebConfigurationManager.ConnectionStrings["UserData"].ConnectionString);