Использование приложения N-уровня. Существуют проекты уровня хранилища, уровня обслуживания и уровня представления. Только слой репозитория имеет ссылку на структуру сущности. Только уровень представления (web.config) имеет строку конфигурации. Я использовал IDbContextFactory
и Dependency Injection, чтобы придать конфигурациюВключить миграцию с шаблоном репозитория N-Tier Проект Visual studio
Как включить миграции Это дает ошибку
Проверяется контекст цели существующей базы данных ... System.ArgumentException: Аргумент «nameOrConnectionString» не может быть null, пусто или содержать только пробел. на System.Data.Entity.Utilities.Check.NotEmpty (значение String, String ParameterName) в System.Data.Entity.DbContext..ctor (Строка nameOrConnectionString)
Как я упоминал строку соединения (конфигурации) является впрыскивается из уровня представления я использую Autofac для DI
Вот завод Context, используемые в хранилище слоя
public class MyContextFactory : IDbContextFactory<MyContext>
{
public ILogger Logger { get; set; }
private readonly string _configuration;
public MyContextFactory(string configuration)
{
_configuration = configuration;
}
public MyContextFactory()
{
}
public MyContext Create()
{
var dbcontext =new MyContext(_configuration, Logger);
return dbcontext;
}
}
Можете ли вы показать свой код? Эта ошибка явно указывает, что вы забыли передать строку подключения. – Kamo
Код работает, я разработал его, не включив миграции ... Как я уже упоминал, строка подключения вводится с уровня Presentation, я использую Autofac для DI – Thunder