我已经使用VS空应用程序模板启动了一个WebAPI应用程序。 首先,我添加了WebAPI服务功能 - 没有问题。 现在,我需要添加实体框架功能,我面临以下问题: 我的应用程序中没有App.config文件。我在哪里可以放置我的数据库配置参数,如“Data Source =”,“defaultConnectionFactory”等...? 目前,我的ApplicationDbContext文件如下所示:
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 :(得分:2)
为此问题提供更准确的答案:您必须在将要执行的项目中包含配置文件(app.config
或web.config
),而不是在任何其他类库项目中。如果配置文件不存在,请创建一个。您可以在VS中通过在所选项目中添加“配置文件”类型的新项目轻松完成。它将根据项目类型创建web.config
文件或app.config
。
“将要执行的项目”是什么意思?
当它是桌面应用程序或网站时,它非常清楚。但是,如果你有一个测试项目,那么你将运行测试,这将是可执行项目。因此,如果您有一个包含两个不同测试项目的Web应用程序,则需要3个配置文件:
web.config
,在运行应用程序时使用app.config
,将在您运行相应的测试时使用这很有趣,因为它允许为每个项目保留不同的配置。
答案 1 :(得分: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>
并且能够达到预期的效果。