Я могу успешно подключиться к базе данных с моим объектом 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 не распознает пользователя как свойство 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, но он их не распознает.
Я не могу понять, что я делаю неправильно, по сравнению со всеми примерами, которые я прочитал. Есть идеи?