Я использовал этот код несколько раз раньше, и он всегда работал до этого, но в этом конкретном проекте я не могу получить Entity Framework для создайте мою базу данных.Создание db в коде EF во-первых, контекст не может использоваться во время создания модели
Когда я проверил Autos в моем классе DbContext, я нашел это:
контекст не может быть использована в то время как модель создается. Это исключение может быть выбрано, если контекст используется внутри метода OnModelCreating или если один и тот же экземпляр контекста обращается одновременно несколькими потоками.
Вот мой OnModelCreating:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
base.OnModelCreating(modelBuilder);
modelBuilder.Configurations.Add(new CompanyDBConfiguration());
modelBuilder.Configurations.Add(new ClientDBConfiguration());
modelBuilder.Configurations.Add(new QuoteDBConfiguration());
modelBuilder.Configurations.Add(new RoleDBConfiguration());
modelBuilder.Configurations.Add(new UserDBConfiguration());
modelBuilder.Configurations.Add(new InvoiceDBConfiguration());
modelBuilder.Configurations.Add(new JobDBConfiguration());
modelBuilder.Configurations.Add(new JobStatusDBConfiguration());
}
А вот пример одного из этих конфигураций:
public class CompanyDBConfiguration : DBBaseObject<Company>
{
public CompanyDBConfiguration()
: base()
{
Property(p => p.Companame)
.HasColumnName("sCompanyname")
.IsRequired();
Property(p => p.ContactPerson)
.HasColumnName("sContactPerson")
.IsRequired();
Property(p => p.ContactNumber)
.HasColumnName("sContactNumber")
.IsRequired();
Property(p => p.EmailAddress)
.HasColumnName("sEmailAddress")
.IsRequired();
Property(p => p.PhysicalAddress)
.HasColumnName("sPhysicalAddres")
.IsRequired();
Property(p => p.LicenseKey)
.HasColumnName("sLicenseKey")
.IsRequired();
Property(p => p.LicenseDate)
.HasColumnName("dtLicenseDate")
.HasColumnType("datetime")
.IsRequired();
ToTable("Companies");
}
}
Может кто-нибудь помочь мне понять, что здесь происходит? Как я уже сказал, он работает в каждом другом проекте, в котором я это сделал, поэтому почему это не работает здесь?
Заранее благодарен!
Как последнее усилие, я полностью прокомментировал метод OnModelCreating, и он сработал. У меня были некоторые другие проблемы для сортировки (значения null datetime, дающие мне ошибки в отношении отношений, например), но теперь все работает – Ortund
Это не очень хорошая идея. Проблемы, о которых вы сообщаете, скорее всего являются результатом этого действия. Можете ли вы рассказать, что происходит в этом методе? – hbulens