none
Не создаёт бд RRS feed

  • Вопрос

  • При попытке обращения к БД показывает такую ошибку:

    {"Произошла ошибка базового поставщика в Open."}

    Классы вот такие:

      public class Company
        {
            [Key]
            public int Id { get; set; }
            public string CompanyTel1 { get; set; }
            public string CompanyTel2 { get; set; }
            public string Email1 { get; set; }
            public string Email2 { get; set; }
            public string Describe { get; set; }
            public string UrlCompany { get; set; }
            public string Coordinates { get; set; }
            public string Address { get; set; }
            public string KitchenType { get; set; }
            public string Name { get; set; }
            public int? InstitutionTypeId { get; set; }
            public virtual InstitutionType InstitutionType { get; set; }
        }
        public class InstitutionType
        {
            [Key]
            public int Id { get; set; }
            public string InstitytionName { get; set; }
            public string InstitytionDescribe { get; set; }
            public virtual ICollection<Company> Companies { get; set; }
        }
    }

    Если убрать навигационные свойства то всё работает, контекст такой

        public class EatContext : DbContext
        {
            public EatContext() : base("DefaultConnection")
            {
                var context = this;
                context.Database.CreateIfNotExists();
            }
            public DbSet<Company> Companys { get; set; }
            public DbSet<InstitutionType> InstitutionTypes { get; set; }
        }
    }

    11 июля 2013 г. 12:35

Ответы

Все ответы

  • Это общее сообщение об ошибке. Запустите приложение в режиме отладки и посмотрите более детельное описание исключения. В подобных случаях на первом месте стоит строка подключения к БД. Возможно она неверная. В любом случае приведите больше деталей об исключении.

    Сделаем содержимое сообщества лучше, вместе!

    11 июля 2013 г. 14:09
    Модератор
  • А больше ничего и не показывает, в InnerException говорит что не может создать файл базы данных, так же ещё в базе есть стандартные таблицы MembershipProvider, но авторизация через него работает опять же, если я не использую навигационные поля. Да и в этот контекст они не входят 
    12 июля 2013 г. 5:18
  • Выходит у вас уже есть готовая БД, и вы хотите довавить часть таблиц к ней используя EF. И в случае использования навигационных свойств она не модифицируется?

    Сделаем содержимое сообщества лучше, вместе!

    12 июля 2013 г. 6:43
    Модератор
  • Я удалял базу, у меня в контексте указано, что нужно создать заново, если её нет, так что не в этом дело видимо...
    12 июля 2013 г. 10:35
  • Можно создать свой инициализатор IDatabaseInitializer, который проверяет наличие созданной БД. Посмотрите кая я его реализовал тут.

    Сделаем содержимое сообщества лучше, вместе!

    16 июля 2013 г. 5:50
    Модератор