对象引用未设置为对象的实例(2)

时间:2012-11-04 09:22:42

标签: c# asp.net-mvc-3

我在asp.net mvc3中使用实体框架,当我尝试向表中添加新记录时,我收到此错误。这是我的代码

namespace CvGenerator.Models
{
    public class LogInEntities:DbContext
    {
        public DbSet LogIn { get; set; }


        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
            modelBuilder.Entity<LogIn>().ToTable("LogInData");
            base.OnModelCreating(modelBuilder);
        }
    }

}

模型控制器:

public class LogIn
{
    public int LogInId { get; set; }
    public string NameAndSurname { get; set; }
    public string Email { get; set; }
    public virtual ICollection<LogIn> LogInCol { get; set; }
}

我使用ajax调用记录数据的方法:

public void LogIn(string email,string nameAndSurname)
{
    LogInEntities logIndb = new LogInEntities();
    LogIn logIn = new LogIn();

    if(ModelState.IsValid)
    {
        logIn.Email = email;
        logIn.NameAndSurname = nameAndSurname;
        ***logIndb.LogIn.Add(logIn);***
        logIndb.SaveChanges();
    }
}

在标记的行上我得到了exeption

2 个答案:

答案 0 :(得分:2)

尝试DbSet&lt;登录&gt;登录

答案 1 :(得分:0)

看看我对LogIn的{​​{1}}属性和构造函数进行了一些更改。

希望你现在不会在提到的行上获得异常。

LogInEntities

模型控制器:

namespace CvGenerator.Models
{
    public class LogInEntities:DbContext
    {
        List<DbSet> lgn;
        public LogInEntities()
        {
             lgn = new List<DbSet>();
        }
        public List<DbSet> LogIn { get{return lgn;} set{lgn=value;} }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Conventions.Remove<IncludeMetadataConvention>();
            modelBuilder.Entity<LogIn>().ToTable("LogInData");
            base.OnModelCreating(modelBuilder);
        }
    }

}

我使用ajax调用记录数据的方法:

public class LogIn
{
    public int LogInId { get; set; }
    public string NameAndSurname { get; set; }
    public string Email { get; set; }
    public virtual ICollection<LogIn> LogInCol { get; set; }
}

在标记的行上我得到了exeption