Не выводятся данные из бд

319
21 января 2017, 09:41

Не выводятся данные которые я вносил в бд. При прохождении кода дебагером после строки db.Contacts.Add(Contact1); выхожу в консоль. И потом выходит ошибка:

Необработанное исключение типа "System.InvalidOperationException" в EntityFramework.dll

Дополнительные сведения: The context cannot be used while the model is being created. This exception may be thrown if the context is used inside the OnModelCreating method or if the same context instance is accessed by multiple threads concurrently. Note that instance members of DbContext and related classes are not guaranteed to be thread safe.

Модели:

public class Contact
{
    [Key]
    public int Id { get; set; }
    public string SurName { get; set; }
    public string Name { get; set; }
    public string MiddleName { get; set; }
    public string BirthDate { get; set; }
    public string Organization { get; set; }
    public string Position { get; set; }
    //public virtual ICollection<ContactInformation> ContInforms { get; set; }
    /*public Contact()
    {
        ContInforms = new List<ContactInformation>();
    }*/
}
public class ContactInformation
{
    //public int? ContactId { get; set; }
    [Key]
    public int Id { get; set; }
    public string Phone { get; set; }
    public string Email { get; set; }
    public string Skype { get; set; }
    public string Another { get; set; }
    //public virtual Contact Contact { get; set; }
}

Контекст базы данных:

public class ContactContext : DbContext
{
    // Имя будущей базы данных можно указать через
    // вызов конструктора базового класса
    public ContactContext()
        : base("MyBases")
    { }
    // Это свойство ссылается на таблицу в базе данных
    public DbSet<Contact> Contacts { get; set; }
    public DbSet<ContactInformation> ContInform { get; set; }
    //protected override void OnModelCreating(DbModelBuilder modelBuilder)
    //{
    //modelBuilder.Entity<ContactInformation>().HasRequired(p => p.Contact)
    // .WithMany(b => b.ContInforms)
    // .HasForeignKey(p => p.ContactId);
    //modelBuilder.Ignore<ContactInformation>();
    //}
}

Код взаимодействия с контекстом базы данных:

class Program
{
    static void Main(string[] args)
    {
        using (ContactContext db = new ContactContext())
        {
            //db.Contacts.Load();
            Contact Contact1 = new Contact
            {
                Id = 0,
                Name = "Вася1",
                SurName = "Пупкин1",
                MiddleName = "Николаевич1",
                BirthDate = "1.11.1990",
                Organization = "Купол1",
                Position = "programmer1",
            };
            Contact Contact2 = new Contact
            {
                Id = 0,
                Name = "Вася2",
                SurName = "Пупкин2",
                MiddleName = "Николаевич2",
                BirthDate = "1.11.1990",
                Organization = "Купол2",
                Position = "programmer2",
            };
            // добавляем их в бд
            db.Contacts.Add(Contact1);
            db.Contacts.Add(Contact2);
            //Contact contact2 = db.Contacts
            //    .Where(o => o.Id == 1)
            //    .FirstOrDefault();
            //db.Contacts.Remove(contact2);
            //сохраняем изменения
            db.SaveChanges();

            ContactInformation ContactInformation1 = new ContactInformation
            {
                Another = "1",
                Email = "1",
                Id = 0,
                Phone = "1",
                Skype = "1",
            };
            ContactInformation ContactInformation2 = new ContactInformation
            {
                Another = "2",
                Email = "2",
                Id = 0,
                Phone = "2",
                Skype = "2",
            };
            ContactInformation ContactInformation3 = new ContactInformation
            {
                Another = "3",
                Email = "3",
                Id = 0,
                Phone = "3",
                Skype = "3",
            };
            try
            {
                //db.ContInform.AddRange(new List<ContactInformation> { ContactInformation1, ContactInformation2, ContactInformation3 });
                db.SaveChanges();
                Console.WriteLine("Объекты успешно сохранены");
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
            // получаем объекты из бд и выводим на консоль
            var users = db.Contacts;
            Console.WriteLine("Список объектов:");
            foreach (Contact c in users)
            {
                Console.WriteLine("{0}.{1} - {2} - {3} - {4} - {5} - {6}", c.Id, c.Name, c.SurName, c.MiddleName, c.Organization, c.Position, c.BirthDate /*c.ContInforms*/);
            }
        }
        //Console.ReadKey();
    }
}

Файл конфигурации

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="MyBases" connectionString="data source=(localdb)\MSSQLLocalDB;Initial Catalog=userstore.mdf;Integrated Security=True;"
 providerName="System.Data.SqlClient"/>
  </connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework" />
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>
READ ALSO
Удаление элементов из коллекции

Удаление элементов из коллекции

Есть абстрактный класс Shape:

340
Может кто объяснить, что делает каждая строка? [требует правки]

Может кто объяснить, что делает каждая строка? [требует правки]

Саму программу я заказал мне её сделали и дали код, но если препод спросит нужно объяснить что делает какая либо строкаПрограмма для слежение...

278
Как выбрать информацию из Mysql

Как выбрать информацию из Mysql

Есть у меня форма на стороне клиента с двумя выпадющими меню, он там выбирает год и тип обложки

255
SelectedItem в ListView

SelectedItem в ListView

Добрый день, есть коллекция которая заполняется из базы MySQL:

265