2016-03-18 4 views
2

В настоящее время в процессе создания многоуровневого приложения с использованием EF Core для моего уровня доступа к данным, и я чувствую, что у меня проблема, и я не на 100% уверен, что могу использовать это на данный момент.Entity Framework Core использует службу Windows

По существу я проектирования моего приложения на следующие компоненты

  • окна сборки
  • asp.net MVC ядро ​​веб-приложение
  • окна обслуживания x2
  • модульного тестирования

в хорошем дизайне Я помещаю как можно больше своего домена в свою сборку, чтобы я мог использовать его как можно больше, но это будет e Я сталкиваюсь с проблемами. В настоящее время я не могу использовать EF в своем модульном тестовом приложении.

Сейчас я переопределение OnConfiguring установить строку подключения к базе данных, но при попытке использовать контекст в блоке Testi постоянно получаю следующее сообщение об исключении: «сбой экземпляра»

Мой контекст грязь просто прямо сейчас и имеет только один объект и выглядит следующим образом:

public partial class CdiContext : DbContext 
{ 
    private string ConnectionString { get; set; } 
    private bool IsService { get; set; } 
    public CdiContext(string connectionString, bool isService) 
    { 
     ConnectionString = connectionString; 
     IsService = isService; 
    } 

    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) 
    { 
     optionsBuilder.UseSqlServer(ConnectionString); 
    } 

    public DbSet<Region> Regions { get; set; } 
} 

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

CdiContext context = new CdiContext(@"Data Source=localhost\\SQLEXPRESS;Initial Catalog=herp-interface;Persist Security Info=True;User ID=sa;Password=herpaderp;Pooling=true", true); 
var regions = context.Regions.ToList(); 

Console.ReadLine(); 

Вопрос, что я делаю это не так, где я не могу использовать контекст EF из окна сборки в любом типе проекта в стороне от приложения ASP.NET MVC ядра?

+0

пропустил это могли бы вы сделать этот вопрос в BOLD, ТНХ, также включают в себя ошибку – Seabizkit

+0

вы уверены, что ваша строка подключения является действительным? – ilans

+0

Yup, я использую ту же строку в моем приложении mvc, и там нет никаких проблем. – Marqueone

ответ

5

Эта ошибка - «сбой экземпляра» - происходит, когда вы копировать/вставить строку подключения из вашего aspnetcore приложения, и до сих пор избежали обратной косой черты.

Внешняя оболочка ASP.Net Core, то есть консольная/оконная служба и т. Д., Строка подключения в app.config не должна избегать обратных косых черт.

EG

<add name="DefaultConnection" connectionString="Server=localhost\\SQLEXPRESS... 

, а затем

<add name="DefaultConnection" connectionString="Server=localhost\SQLEXPRESS... 
Смежные вопросы