MVC第一个代码实体中的NullException错误

时间:2016-07-03 19:55:50

标签: asp.net sql-server asp.net-mvc entity-framework

我有MVC第一个代码项目,但我得到以下错误 error pic

第一个代码!所以没有默认的数据库。

模型类

string sqlcommand = "SELECT user, pass FROM users WHERE user=@username";

//do all code for command, con and parameters

while (rdr.Read())
{
    //store username and password
}
if(storedPassword == inputedPassword)
{
    loggedinwindowpumpkin window = new loggedinwindowpumpkin();
                    this.Close();
                    window.ShowDialog();
}
else
{
    //wrong password message
}

上下文类:

public class Applicant
{
    public int ApplicantID { get; set; }
    public string UserName { get; set; }
    public string Password { get; set; }
    public int PhoneNumber { get; set; }
}

申请人重新安排类:

public class Context : DbContext
{
    public List<Applicant> Applicants { get; set; }
    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Entity<Applicant>().Property(r => r.ApplicantID)
                     .HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);
    }
}

我在我的网络解决方案中将以下代码添加到我的web.config中:

public  Applicant Create(string username, string password, int phoneNumber, out int existResult)
{
    if (context.Applicants.Where(x => x.UserName == username).ToString() != null)
    {
        applicant = new Applicant()
        {
            UserName = username,
            Password = password,
            PhoneNumber = phoneNumber,
        };
        context.Applicants.Add(applicant);
        existResult = 1;
        return applicant;
    }
    existResult = 0;
    return applicant;   
}

1 个答案:

答案 0 :(得分:1)

好的,我找到答案。

首先我将上下文类改为如下所示

添加此部分:

public Context()
    {
        base.Configuration.LazyLoadingEnabled = false;
        base.Configuration.ProxyCreationEnabled = false;
        base.Configuration.ValidateOnSaveEnabled = false;
    }

并将字符串更改为DbSet:

    public DbSet<Applicant> Applicants { get; set; }

第二

一个很酷的错误:D我忘了这样做:

  

项目 - &gt;管理NuGet包...

     

注意:如果您没有Manage NuGet Packages ...选项,那么您应该这样做   安装最新版本的NuGet

     

选择在线选项卡

     

选择EntityFramework包

     

单击“安装”

毕竟对于某些代码位置,如果上述方法无效,请尝试{} catch {} 是最后的解决方案!

最后当我运行我的网络时没有保存在我的数据库中:( 放入&#34; context.SaveChanges();&#34;非常重要。在&#34; context.Add(申请人);&#34;

之后的申请人资料库中

全部 TNX