2016-03-18 32 views
2

目前正在爲我的數據訪問層使用EF Core構建一個多累的應用程序的過程中,我覺得我正在運行一個問題,並且我不是100%確定可以使用它目前。實體框架核心使用Windows服務

基本上我設計我的應用程序分爲以下幾個組件

  • 窗戶組裝
  • asp.net的MVC核心的Web應用程序
  • 窗口服務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(); 

的問題是我在做什麼這是錯誤的地方,我無法使用從Windows組件EF上下文從ASP.NET MVC的核心應用任何類型的項目預留的?

+0

錯過了你能做出大膽,THX的問題,還包括錯誤 – Seabizkit

+0

你確定你的連接字符串是有效的? – ilans

+0

是的,我在我的mvc應用程序中使用相同的字符串,並且沒有連接的問題。 – Marqueone

回答

5

這個錯誤 - 「實例故障」 - 當你複製/粘貼從您的應用程序aspnetcore連接字符串,而且還有逃脫反斜線發生。

在ASP.Net Core之外,即控制檯/ windows服務等,app.config中的連接字符串不需要轉義反斜槓。

EG

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

而不是

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