将Asp.Net Mvc默认应用程序dbcontext类移动到另一个文件夹
我正在构建一个asp MVC网站。我正在为我的网站使用身份验证,因此我使用默认模板的默认身份验证方法。我现在完全混淆了身份应用程序dbcontext类和我的应用程序的自定义dbcontext类。我有很多关于这方面的问题。将Asp.Net Mvc默认应用程序dbcontext类移动到另一个文件夹
1)我应该为每个dbcontexts分别启用迁移吗?
2)我可以将上下文的数据库指向单个数据库吗? (我看到答案说可以完成..)有什么问题吗?
3)我可以将Identitymodel.cs
类从models文件夹移动到我的另一个dbcontext所在的名为Databases的自定义文件夹中吗?我看到命名空间仍然是dbcontext.models而不是dbcontext.databases
有人可以回答我..我查过了与此相关的所有问题仍然无法清除我的疑惑。
所以如果你真的需要两个DbContexts(我很好奇为什么),你必须为每个dbcontexts分别启用迁移。您必须为每个要生成的Configuration.cs文件指定一个文件夹。事情是这样的:
PM> Enable-Migrations -ContextTypeName ApplicationDbContext -MigrationsDirectory Migrations\ApplicationDbContext
Checking if the context targets an existing database...
Code First Migrations enabled for project SomeWebApplication.
PM> Enable-Migrations -ContextTypeName YourCustomDbContext -MigrationsDirectory Migrations\YourCustomDbContext
Checking if the context targets an existing database...
Code First Migrations enabled for project SomeWebApplication.
你的上下文可以指向同一个分贝(他们可以有一个共同的连接字符串),只要不涉及做同桌。
是的,你可以移动IdentityModel到另一个文件夹,但你必须手动改变命名空间。 (或者让ReSharper的,它可以自动进行)
1)无
2)是的,你可以做到这一点,但你实现它在一个环境更好。 你怎么能这样做?你的答案就在这里: 创建的ApplicationDbcontext
类名:
ApplicationDbcontext.cs
public class ApplicationDbContext :IdentityDbContext<User, Role, Guid, UserLogin, UserRole, UserClaim>
{
public ApplicationDbContext() :
base("Server=.;Initial Catalog=TestDb;Integrated Security=true;MultipleActiveResultSets=True;")
{
}
public DbSet<Person> Peoples { get; set; }
// add poco classes here
}
创建custom
身份波苏斯:
public class User : IdentityUser<Guid, UserLogin, UserRole, UserClaim>
public class Role : IdentityRole<Guid,UserRole>
public class UserLogin : IdentityUserLogin<Guid>
public class UserRole : IdentityUserRole<Guid>
public class UserClaim : IdentityUserClaim<Guid>
现在你有一个的DbContext和可删除IdentiyMode.cs
ex ecute这个命令:Add-Migration init
和Update-Database --verbose
你不需要其他的DbContext
IdentityContext
继承DbContext
:
public class IdentityDbContext<TUser, TRole, TKey, TUserLogin, TUserRole,
TUserClaim> : DbContext
“所以,如果你真的需要有两个DbContexts(我很好奇为什么)“..我不熟悉从2个dbcontexts制作单个的dbcontext。作为一个脚手架,恐怕如果这可能会引发错误。 – Abhijith