2016-10-31 3 views
1

「モデルを取得するために、DbContextの作成中にエラーが発生しました」足場項目を追加し、私は.NETのコア - 私は私のプロジェクトのための新しい足場アイテムを作成しようとするたびに

There was an error creating the DbContect instance to get the model No Parameterless constructor defined for this object.

を示すエラーを受け取ります私は私のプロジェクトを再建しようとしましたが、私は足場を以前に生成して成功していましたが、今何らかの理由でこれを成功させることはできませんでした。私は最後に新しい足場のアイテムを追加して以来、私のコンテキストクラスに変更は行われていません。

私はモデルに空のコンストラクタを作成しようとしましたが、それでも同じエラーが発生します。私が足場にしようとしている私のモデルと、私の状況について、私のコードを見つけることができます。

namespace HRIAT.Models 
{ 

    public class Credential 
    { 

     public Credential() { } 

     public int ID { get; set; } 
     public string credentialName { get; set; } 
     public FundingSource credentialFundingSource { get; set; } 
     public string credentialType { get; set; } 
     public float credentialCost { get; set; } 

     public ICollection<Employee> ec { get; set; } 


    } 
} 

Contextクラス:プロジェクトのエンティティが空のコンストラクタが含まれていない場合

namespace HRIAT.Models 
{ 
    public class HRIATContext : DbContext 
    { 
     public HRIATContext(DbContextOptions<HRIATContext> options) 
      : base(options) 
     { 
     } 


     public DbSet<FundingSource> FundingSource { get; set; } 

     public DbSet<Credential> Credential { get; set; } 

     public DbSet<Employee> Employee { get; set; } 

     public DbSet<EmployeesCredentials> EmployeeCredential { get; set; } 

     protected override void OnModelCreating(ModelBuilder modelBuilder) 
     { 
      modelBuilder.Entity<EmployeesCredentials>().HasKey(c => new { c.CredentialID, c.employeeNum }); 
     } 

     public DbSet<Position> Positions { get; set; } 
     public DbSet<Department> Departments { get; set; } 
     public DbSet<Location> Locations { get; set; } 


    } 
} 

答えて

0

このエラーが表示されます。 EntityFrameworkは、エンティティをインスタンス化し、スキーマのプロパティをマップするために空のコンストラクタを必要とします。

public class Person 
{ 
    public string Name { get; private set; } 

    public Person(string name) 
    { 
     Name = name; 
    } 

    protected Person() { } 

} 
+0

あなたは私のモデルは.csファイル内の空のコンストラクタを参照している:あなたは、エンティティクラスを保護する必要がある場合

は、保護されたコンストラクタ、例を使うのか?私は以前のものではコンストラクタを持っていませんでしたが、足場を早く生成することができました。 – Kyler45

+0

空のコンストラクタをクラスに追加しましたが、実際には同じエラーが実際に発生します。 – Kyler45

+0

クラスモデルで空のコンストラクタである必要があります。空のコンストラクタはC#で暗黙のうちに覚えていますが、パラメータ化されたコンストラクタをインクルードすると、クラスにパラメータを含むコンストラクタが存在する場合、空のコンストラクタは存在しなくなります。より多くの情報とソースコードを含む質問を編集することができないと言ったように、エラーメッセージだけに基づいて言うことができません。 –

関連する問題