我可以用我的datacontext对象成功地连接到数据库。我能够成功地读取和写入数据库,但我不能使用其他人似乎正在使用的语法。
例如,当我想要表中的数据时,我必须执行以下操作:
db = new UserDataDataContext(WebConfigurationManager.ConnectionStrings["UserData"].ConnectionString);
IQueryable Users = db.GetTable<User>();
我希望能够编写linq查询,比如我如何看待其他人这样做:
db = new UserDataDataContext(WebConfigurationManager.ConnectionStrings["UserData"].ConnectionString);
var query = from u in db.User
where u.UserName == "Test"
select u;
但intellisense不将User识别为数据库的属性,因此不会编译。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的UserDataDataContext的新实例,并从Web.config传入我的连接字符串。
然后,我尝试编写一个linq查询,将表名引用为db对象的属性,但它无法识别它们。
与我读过的所有例子相比,我似乎找不出我做错了什么。有什么想法吗?