此处的名称“插入名称”在当前上下文中不存在

时间:2012-02-24 04:39:01

标签: c# .net linq linq-to-sql datacontext

我不明白为什么这个查询中的“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();
                }
            }
        }

我没有在datacontext中发布我的所有代码,因为它很长。

1 个答案:

答案 0 :(得分:5)

该错误正好告诉您需要知道的内容,名称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
}