0

嗨,伙计,我已经看到了这个错误代码:执行命令定义时发生错误。有关详细信息,请参阅内部异常。在将我的文本搜索到数据库时..

        private bool IsValidRegisterNewAcct(string acctname, string dispname, string email, string password)
    {
        var crypto = new SimpleCrypto.PBKDF2();
        bool IsValid = false;
        IsValidErrorMessage = "";
        IsValidErrorMessageInt = 0;
        string Newacctname = crypto.Compute(acctname.ToString());
        //try
        //{
            using (var db = new MainDbContext())
            {

                //db.Connection.Open();
                var user = db.user.FirstOrDefault(u => u.AcctNameSalt  == Newacctname);
                //var user = db.osoa_user.FirstOrDefault(u => u.Email == email);

                if (user != null)
                {
                    IsValid = false;
                    //db.Connection.Close();
                    IsValidErrorMessage = "Account Name already Exist!";
                }
                else
                {
                    var InsertNewAcctName = db.osoa_user.CreateObject();

                    InsertNewAcctName.UserId = Convert.ToString( Guid.NewGuid());
                    InsertNewAcctName.AcctName = acctname;
                    InsertNewAcctName.AcctNameSalt = crypto.Compute(acctname);
                    InsertNewAcctName.DisplayName = dispname;
                    InsertNewAcctName.Email = email;
                    InsertNewAcctName.EmailSalt = crypto.Compute(email);
                    InsertNewAcctName.Password = crypto.Compute(password);
                    InsertNewAcctName.PasswordSalt = crypto.Salt;
                    InsertNewAcctName.UserLevel = 2;

                    db.user.AddObject(InsertNewAcctName);

                    db.SaveChanges();
                    //db.Connection.Close();
                    IsValid = true;
                }
            }
        /*
        }
        catch (Exception e)
        {
            IsValidErrorMessageInt = 1;
            IsValidErrorMessage = e.Message + ". Pls. contact your Administrator.";
            IsValid = false;
        }
        */
        return IsValid;

    }

并且错误指向此代码:

var user = db.user.FirstOrDefault(u => u.AcctNameSalt  == Newacctname);

更新关于内部异常。我不知道是否给您正确的..我尝试使用此代码:

            try
        {
        }
        catch (Exception e)
        {
            IsValidErrorMessageInt = 1;
            IsValidErrorMessage = e.InnerException + ". Pls. contact your Administrator.";
            IsValid = false;
        }

MySql.Data.MySqlClient.MySqlException (0x80004005):MySql.Data.MySqlClient.MySqlStream.ReadPacket() 的 MySql.Data.MySqlClient.NativeDriver.GetResult 的“字段列表”中的未知列“Extent1.DateCreated”(Int32& 影响行,Int64&在 MySql.Data.MySqlClient.Driver.NextResult(Int32 statementId, Boolean force) 在 MySql.Data.MySqlClient.MySqlDataReader.NextResult( )在 MySql.Data.MySqlClient.MySqlCommand.ExecuteReader(CommandBehavior 行为)在 MySql.Data.Entity.EFMySqlCommand.ExecuteDbDataReader(CommandBehavior 行为)在 System.Data.Common.DbCommand.ExecuteReader(CommandBehavior 行为)在 System.Data.EntityClient。 EntityCommandDefinition.ExecuteStoreCommands(EntityCommand entityCommand,命令行为行为)

4

1 回答 1

0

从您的内部异常看来,MainDbContext您的数据库似乎与您的数据库不同步(看起来数据库Extent1中不存在一个列)。

尝试从模型中删除该属性并重试。

于 2013-04-28T11:52:06.557 回答