Я могу успешно подключиться к базе данных с моим объектом 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 как свойство 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, с именем UserDataDataContext. Затем я создаю новый экземпляр UserDataDataContext с именем db, передав мою строку подключения из Web.config.
Затем я пытаюсь написать запрос linq, ссылающийся на имена таблиц как на свойства объекта db, но он их не распознает.
Похоже, я не могу найти, что делаю неправильно, по сравнению со всеми примерами, которые я читал. Любые идеи?