我使用的是n层架构,所以现在我有2个项目域和服务(WebApi2)
Data Source=.\SQLEXPRESS;Initial Catalog=DefaultConnection;Integrated Security=True;MultipleActiveResultSets=True
来自域的我的App.config
<connectionStrings>
<add name="DefaultConnection" connectionString="server=localhost;user id=root;password=admin123;persistsecurityinfo=True;database=GD" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
<entityFramework>
<providers>
<provider invariantName="MySql.Data.MySqlClient"
type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity"/>
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="MySql.Data.MySqlClient"></remove>
<add name="MySQL Data Provider"
invariant="MySql.Data.MySqlClient"
description=".Net Framework Data Provider for MySQL"
type="MySql.Data.MySqlClient.MySqlClientFactory, MySql.Data, Version=6.8.3.0"/>
</DbProviderFactories>
</system.data>
在Startup.Auth.cs中,我添加了User的自定义实现和
UserManagerFactory = () => new UserManager<User>(new UserRepository());
UserRepository正在使用我的实体
public UserRepository()
{
_entities = new Entities();
}
Entity.cs:
public class Entities : DbContext
{
static Entities()
{
Database.SetInitializer(new MySqlInitializer());
}
public Entities() : base("DefaultConnection") { }
public DbSet<User> IdentityUsers { get; set; }
public DbSet<Role> IdentityRoles { get; set; }
public DbSet<IdentityUserClaim> IdentityUserClaims { get; set; }
public DbSet<IdentityUserLogin> IdentityUserLogins { get; set; }
public DbSet<IdentityUserRole> IdentityUserRoles { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<IdentityUserLogin>().HasKey(u => u.UserId);
modelBuilder.Entity<IdentityUserRole>().HasKey(u => u.RoleId);
modelBuilder.Entity<IdentityUserRole>().HasKey(u => u.UserId);
base.OnModelCreating(modelBuilder);
}
}
问:如何让项目服务使用域连接字符串?
答案 0 :(得分:2)
当您的项目运行时,唯一使用的配置文件是启动项目中的文件(在您的情况下,Web API项目)。因此,您需要在其web.config文件中使用连接字符串。
注意:如果您有一个测试Web API的测试项目,那么这将是启动项目,您需要将连接字符串添加到该项目的配置文件中。如果没有,测试运行器将无法找到它,并且测试将失败
答案 1 :(得分:1)
配置管理器默认使用条目项目中的配置文件。基本上,您不应将配置放在依赖程序集中。
因此,如果您有 UI&lt; - Services&lt; - Domain 等参考链,则应将配置文件放在UI项目下。