Erd*_*kut 5 asp.net-mvc entity-framework asp.net-web-api asp.net-mvc-5 asp.net-web-api2
我正在使用Web Api 2.0和使用表单身份验证创建一个项目.我的问题是更改AspNet自动生成的表的默认模式名称.
例如;
dbo.AspNetUsers ---> User.AspNetUsers
我已经尝试使用ALTER SCHEMA查询在数据库中更改它们,我已将此模型添加到我的项目中
public class UserAccount:IdentityDbContext<IdentityUser>{
.....
}
Run Code Online (Sandbox Code Playgroud)
但是我有以下错误;
实体类型
UserAccount
不是当前上下文的模型的一部分
知道如何解决这个问题.或者我可以将默认架构更改dbo
为其他内容Owin
我已经解决了这个问题,你可以看到我是怎么做到的
首先,我执行了以下查询
ALTER SCHEMA User TRANSFER dbo.AspNetUsers
Run Code Online (Sandbox Code Playgroud)
以及其他相关表格.
在应用程序中,我添加了带有空表集的edmx文件,并引用了下面的IdentityDbContext
public partial class LicaDatabaseEntities : IdentityDbContext<UserAccount>
{
public LicaDatabaseEntities()
: base("LicaDatabaseEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//throw new UnintentionalCodeFirstException();
modelBuilder.HasDefaultSchema("User");
base.OnModelCreating(modelBuilder);
}
}
Run Code Online (Sandbox Code Playgroud)
在初创公司
UserManagerFactory =
() => new UserManager<UserAccount>(new UserStore<UserAccount>(new LicaDatabaseEntities()));
Run Code Online (Sandbox Code Playgroud)
我现在使用最新版本的OWIN和EF(2015-02-26).
我改变了一些东西,它使用"Membership"SQL Schema而不是"dbo"
0-我改变了connectionString的名字:
<connectionStrings>
<clear/>
<add name="MembershipConnection" connectionString="Server=.;Integrated Security=True;Database=AWU" providerName="System.Data.SqlClient" />
</connectionStrings>
Run Code Online (Sandbox Code Playgroud)
1-1-我改变了IdentityModels.cs
这样:
public ApplicationDbContext() : base("MembershipConnection", throwIfV1Schema: false) { }
Run Code Online (Sandbox Code Playgroud)
1-2-我添加了这种覆盖方法 IdentityModels.cs
protected override void OnModelCreating(DbModelBuilder modelBuilder) {
modelBuilder.HasDefaultSchema("Membership");
base.OnModelCreating(modelBuilder);
}
Run Code Online (Sandbox Code Playgroud)
2-我改变了EF使用SQL的方式,因为我的机器上安装了"MS-SQL 2014"
<defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework">
<parameters>
<parameter value="MembrshipConnection"/>
</parameters>
</defaultConnectionFactory>
Run Code Online (Sandbox Code Playgroud)
我相信最重要的部分是1-2
告诉EF在创建SQL表时使用默认Schema.我没有触及OWIN的Startup.cs
归档时间: |
|
查看次数: |
4311 次 |
最近记录: |