C# 在Microsoft MVC个人用户帐户模板中替换DbContext
我刚刚创建了我的第一个MVC网站。 为了避免自己对控制器进行编程,我使用了Microsoft的“个人用户帐户”模板 我知道,该模板使用实体框架创建一个express数据库来持久化用户/帐户数据 因为我已经有了一个我想使用的数据库,所以我想更改 模板,以便使用所述数据库的DbContext 我能够更改connectionString,以便在数据库中创建模板的表。但我不希望它创建自己的表,而是使用我已经创建的表 有什么简单的方法可以做到这一点吗 或者我应该自己从头开始编写整个帐户/用户控制器吗?C# 在Microsoft MVC个人用户帐户模板中替换DbContext,c#,asp.net-mvc,entity-framework,asp.net-mvc-5,C#,Asp.net Mvc,Entity Framework,Asp.net Mvc 5,我刚刚创建了我的第一个MVC网站。 为了避免自己对控制器进行编程,我使用了Microsoft的“个人用户帐户”模板 我知道,该模板使用实体框架创建一个express数据库来持久化用户/帐户数据 因为我已经有了一个我想使用的数据库,所以我想更改 模板,以便使用所述数据库的DbContext 我能够更改connectionString,以便在数据库中创建模板的表。但我不希望它创建自己的表,而是使用我已经创建的表 有什么简单的方法可以做到这一点吗 或者我应该自己从头开始编写整个帐户/用户控制器吗?//
//这是它实现DbContext的DbContext类的一个示例
// This is an example of DbContext class it implements DbContext
// If you do not use constructor(s) then the expectation by entity framework
// will be that your name of your connectionstring in web.config
// or app.config is name name as your class so e.g. "YourContext",
// otherwise "Name="YourConnectionString"
public class YourContext : DbContext
{
// constructor as you wish /want
public YourContext(string nameOrConnectionString)
: base(nameOrConnectionString)
{ }
// critical mapping
public DbSet<someModel> someModel { get; set; }
// critical overide
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
// critical key to NOT let your database get dropped or created etc...
Database.SetInitializer<YourContext>(null);
// This is an example of mapping model to table
// and also showing use of a schema ( dbo or another )
modelBuilder.Entity<someModel>().ToTable("someTable", schemaName: "dbo");
}
}
//如果不使用构造函数,则“实体预期”框架
//将是web.config中连接字符串的名称
//或者app.config是类的名称,例如“YourContext”,
//否则“Name=“YourConnectionString”
公共类YourContext:DbContext
{
//如你所愿
公共YourContext(字符串名称或连接字符串)
:base(名称或连接字符串)
{ }
//临界映射
公共数据库集someModel{get;set;}
//临界溢位
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
//关键键,以防止数据库被删除或创建等。。。
Database.SetInitializer(null);
//这是一个将模型映射到表的示例
//以及显示模式(dbo或其他)的使用
modelBuilder.Entity().ToTable(“someTable”,schemaName:“dbo”);
}
}
尝试以下操作:但我不希望它创建自己的表,而是使用我已经创建的表
请参见下面的答案数据库。SetInitializer(null);