1

我已經使用VS空應用程序模板啓動了WebAPI應用程序。 首先,我添加了WebAPI服務功能 - 沒有問題。 現在,我需要添加實體框架功能,並且遇到以下問題: 我的應用程序中沒有App.config文件。我在哪裏可以放置我的數據庫配置參數,例如「Data Source =」,「defaultConnectionFactory」等...? 目前,我ApplicationDbContext文件看起來像這樣:將Entity Framework配置字符串放在WebAPI應用程序中的位置

using System; 
using System.Collections.Generic; 
using System.Data.Entity; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 

namespace WebAPIService.Models 
{ 
    public class ApplicationDbContext : DbContext 
    { 
     public ApplicationDbContext() 
      : base("DcToolDB") 
     { 

     } 

     public IDbSet<Site> Sites { get; set; } 
     public DbSet<Quote> Quotes { get; set; } 
    } 

    public class ApplicationDbInitializer : DropCreateDatabaseAlways<ApplicationDbContext> 
    { 
     protected override void Seed(ApplicationDbContext context) 
     { 
      base.Seed(context); 

     } 
    } 
} 
+0

你沒有web.config? – renakre

+0

我剛剛意識到 - 我有一個App.config文件。將看看我是否可以正確指定一切... –

回答

2

爲了更準確地回答這個問題:您必須將配置文件(app.configweb.config)包含在將要執行的項目中,而不是在任何其他類庫項目中。如果配置文件不存在,請創建一個。您可以通過在所選項目中添加一個類型爲「配置文件」的新項目輕鬆地在VS中執行此操作。它將創建一個web.config文件或app.config,具體取決於項目類型。

「將執行的項目」是什麼意思?

當它是一個桌面應用程序或網站時,它非常清楚。但是,如果您有測試項目,那麼您將運行測試的可執行項目qhen。所以,如果你有例如使用兩種不同的測試項目中的Web應用程序,你需要3個配置文件:

  • 在Web應用程序項目web.config,運行應用程序
  • 一個app.config當其窗臺使用每個測試項目將在您運行相應測試時使用

這很有趣,因爲它允許爲每個項目保留不同的配置。

0

我也畢竟有App.config中,只是沒有看到它在第一。 一旦找到,我已經增加了一節的實體框架:

<entityFramework> 
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"> 
     <parameters> 
     <parameter value="Data Source=.\SQLEXPRESS2012; Initial Catalog=DcToolDB; Integrated Security=True; MultipleActiveResultSets=True" /> 
     </parameters> 
    </defaultConnectionFactory> 
    <providers> 
     <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" /> 
    </providers> 
    </entityFramework> 

,並能夠實現所期望的結果。

相關問題