Имя «вставить имя здесь» не существует в текущем контексте - PullRequest
1 голос
/ 24 февраля 2012

Я не понимаю, почему «dbo» в этом запросе

var searchUser = from user in dbo.Accounts
                             where user.accnt_user == txtUser.Text &&
                             user.accnt_pass == txtPassword.Text
                             select user;

Показывает эту ошибку

«Имя« dbo »не существует в текущем контексте»

но когда я удаляю слово "dbo", это показывает мне эту ошибку

Имя учетной записи не существует в текущем контексте.

Вот моя таблица enter image description here

и внутри моего DataClasssesContext у меня есть это

[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Accounts")]
    public partial class Account : INotifyPropertyChanging, INotifyPropertyChanged
    {

        private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);

        private int _accnt_ID;

        private string _accnt_User;

        private string _accnt_Pass;

        private string _accnt_Position;

    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void Onaccnt_IDChanging(int value);
    partial void Onaccnt_IDChanged();
    partial void Onaccnt_UserChanging(string value);
    partial void Onaccnt_UserChanged();
    partial void Onaccnt_PassChanging(string value);
    partial void Onaccnt_PassChanged();
    partial void Onaccnt_PositionChanging(string value);
    partial void Onaccnt_PositionChanged();
    #endregion

        public Account()
        {
            OnCreated();
        }

        [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_accnt_ID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
        public int accnt_ID
        {
            get
            {
                return this._accnt_ID;
            }
            set
            {
                if ((this._accnt_ID != value))
                {
                    this.Onaccnt_IDChanging(value);
                    this.SendPropertyChanging();
                    this._accnt_ID = value;
                    this.SendPropertyChanged("accnt_ID");
                    this.Onaccnt_IDChanged();
                }
            }
        }

Я не разместил весь свой код в текстовом текстовом данных, потому что он длинный.

1 Ответ

5 голосов
/ 24 февраля 2012

Эта ошибка говорит вам именно то, что вам нужно знать, что имя dbo не существует.Существует не переменная, поле или статический класс, который доступен в этой строке кода, и поэтому компилятор говорит вам, что имя не существует в данном контексте.

Например, учитывая, что определение этого класса и метода

class Foo
{
    public void Frob()
    {
        Console.WriteLine(bar); // bar does not exist!
    }
}

bar не относится ни к локальной переменной, ни к полю класса, и приведет к той же самой ошибке, которую вы наблюдали.

Что касается вашего конкретного кода, ваш комментарий к вопросу указывает, что у вас есть экземпляр класса DataClasses1DataContext.Это более чем вероятно, что вам нужно использовать в вашем запросе.

using (var myDbContext = new DataClasses1DataContext())
{
    var query = from user in myDbContext.Accounts
                where user.Blah == whatever
                select user;

     // use query results
}
...