2017-07-07 9 views
0

私は "db.Persons.Add()"を呼び出すときに、私はwindowformapplicationでエンティティフレームワークを使用しています。エラーになります:エラー:NBTSol.Models.ContactDbContext.Personsが保護レベルのためにアクセスできない - #

エラー:NBTSol.Models.ContactDbContext.Personsは、 も、すべてが公開され、その保護レベルにアクセスできない、その後

なぜですか?

人モデル:

using System; 
using System.Collections.Generic; 
using System.ComponentModel.DataAnnotations; 
using System.ComponentModel.DataAnnotations.Schema; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace NBTSol.Models 
{ 
    public class Person 
    { 
    [Key] 
    [DatabaseGenerated(DatabaseGeneratedOption.Identity)] 
    public long PersonId { get; set; } 

    [Required(ErrorMessage = "First Name is Required")] 
    public string FirstName { get; set; } 

    [Required(ErrorMessage = "Last Name is Required")] 
    public string LastName { get; set; } 

    [Required(ErrorMessage = "Email is Required")] 
    public string Email { get; set; } 

    [Required(ErrorMessage = "Gender is Required")] 
    public string Gender { get; set; } 

    [Required(ErrorMessage = "Address is Required")] 
    public string Address { get; set; } 

    [Required(ErrorMessage = "City is Required")] 
    public string City { get; set; } 

    [Required(ErrorMessage = "State is Required")] 
    public string State { get; set; } 

    [Required(ErrorMessage = "PostalCode is Required")] 
    public string PostalCode { get; set; } 

    [Required(ErrorMessage = "Country is Required")] 
    public string Country { get; set; } 

    [Required(ErrorMessage = "Contact Number is Required")] 
    public string ContactNumber { get; set; } 

    [Required(ErrorMessage = "CNIC is Required")] 
    public string CNIC { get; set; } 


    public string OrganizationName { get; set; } 
    public string Designation { get; set; } 
    public string Salary { get; set; } 
    public string Description { get; set; } 

    public Nullable<bool> IsClient { get; set; } 
    public DateTime EntryDateTime { get; set; } 
    public Nullable<bool> IsDeleted { get; set; } 

} 
} 

私のコンテキストクラス:

 using System; 
     using System.Collections.Generic; 
     using System.Data.Entity; 
     using System.Linq; 
     using System.Text; 
     using System.Threading.Tasks; 

    namespace NBTSol.Models 
    { 
    public class ContactDbContext :DbContext 
    { 
    public ContactDbContext() : base("name=DefaultConnection") { } 

    DbSet<Person> Persons { get; set; } 

    protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 
     //Configure domain classes using Fluent API here 

     base.OnModelCreating(modelBuilder); 
    } 
    } 
    } 

メインフォーム:[i "はdb.Persons.Addを()" を呼び出すしようとすると、ここでエラーです]

using NBTSol.Models; 
using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using System.Windows.Forms; 

namespace NBTSol 
    { 
    public partial class Main : Form 
    { 
    public Main() 
    { 
     InitializeComponent(); 
    } 

    private void Main_Load(object sender, EventArgs e) 
    { 
     ContactDbContext db = new ContactDbContext(); 
     Person person = new Person(); 
     db.Persons.Add(person); 
    } 
    } 
} 

答えて

0

dbコンテキストでPersonプロパティをpublicにすると、次のように動作します。

public DbSet<Person> Persons { get; set; } 

次のコードを使用してContactDbContextクラスを置き換えます。私は私の答えを更新している...それを得たbuddy..i

public class ContactDbContext: DbContext { 
public ContactDbContext(): base("name=DefaultConnection") {} 

public DbSet <Person> Persons { 
    get; 
    set; 
} 

protected override void OnModelCreating(DbModelBuilder modelBuilder) { 
    //Configure domain classes using Fluent API here 

    //Configure table name 
    modelBuilder.Entity<Persons>() 
    .ToTable("Persons "); 

    base.OnModelCreating(modelBuilder); 
} 
} 
+0

ありがとう – mubsher

+0

を。 – Zeeshan

+0

別の問題があります。私のモデルをPersonとして宣言し、DbContextクラスのPersonに複数の行を追加します。ただし、データベースにPeopleテーブルを作成していますがPersonを作成するのではなく、列はモデルでデカールされたものと同じです – mubsher

関連する問題