1

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();
    }
}

マークされた行で私は例外を取得します

4

2 に答える 2

2

代わりにDbSet<Login>ログインを試してください

于 2012-11-04T09:35:13.120 に答える
0

LogIn のプロパティとコンストラクターに少し変更を加えたところを見てください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);
        }
    }

}

モデルコントローラー:

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();
    }
}

マークされた行で私は例外を取得します

于 2012-11-04T09:33:30.753 に答える