Невозможно создать базу данных EF в Ntier Structure

Как будто вы пытаетесь получить доступ к объекту, который является null. Рассмотрим ниже пример:

TypeA objA;

. В это время вы только что объявили этот объект, но не инициализировали или не инициализировали. И всякий раз, когда вы пытаетесь получить доступ к каким-либо свойствам или методам в нем, он будет генерировать NullPointerException, что имеет смысл.

См. Также этот пример:

String a = null;
System.out.println(a.toString()); // NullPointerException will be thrown
0
задан Harry 14 April 2019 в 10:53
поделиться

2 ответа

Это хороший способ описать вашу строку подключения в классе dbcontext, например

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    if (!optionsBuilder.IsConfigured)
    {                
        optionsBuilder.UseSqlServer(@"Server=Servername;Database=Dbname;User ID=sa;Password=1234qqqQ;TrustServerCertificate=True;Trusted_Connection=False;Connection Timeout=30;Integrated Security=False;Persist Security Info=False;Encrypt=True;MultipleActiveResultSets=True;");
    }
}

. Это позволит вам добавить миграцию в базу данных. Во-вторых, ваше приложение должно знать, в какую базу данных оно будет отправлено. В ядре .net добавьте следующий код startup.cs

  var connection = @"Server=Servername;Database=Dbname;User ID=sa;Password=1234qqqQ;TrustServerCertificate=True;Trusted_Connection=False;Connection Timeout=30;Integrated Security=False;Persist Security Info=False;Encrypt=True;MultipleActiveResultSets=True;";
        services.AddDbContext<BeautyCenterContext>(options => options.UseSqlServer(connection)); 

Не забудьте изменить проект по умолчанию на проект, который содержит класс контекста при добавлении миграции в pm. Надеюсь, это поможет.

0
ответ дан Trinity 14 April 2019 в 10:53
поделиться

Посмотрите на следующие строки в Web.config:

<entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
        <parameters>
            <parameter value="mssqllocaldb" />
        </parameters>
    </defaultConnectionFactory>
    <providers>
        <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
</entityFramework>

Ваша фабрика соединений установлена ​​на mssqllocaldb, поэтому дБ создается с использованием локальной дБ. Исправьте строку подключения, чтобы использовать имя экземпляра SQL, или просто удалите этот код, чтобы настройка App.config работала.

0
ответ дан ingvar 14 April 2019 в 10:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: