使用MVC3不生成EF Code First数据库

时间:2013-05-25 13:16:45

标签: c# asp.net asp.net-mvc-3 ef-code-first

我正在使用EF Code First和MVC3开发应用程序。该解决方案包含三个项目; ProjectName.Model 仅涉及 POCO 类, ProjectName.App 涉及 MVC3 Web项目的默认模型文件夹(由MVC本身创建的)和 ProjectName.Repository ,其中包含通用存储库,UnitOfWork以及DatabaseContext类问题是,EF5生成数据库但没有包含表格:

public class DatabaseContext : DbContext
{
    public DatabaseContext() : base("name=MahalehMaDB") { }
    //
    public DbSet<Man> Mans { get; set; }
    public DbSet<City> Cities { get; set; }
    public DbSet<Role> Roles { get; set; }
    public DbSet<RoleGroup> RoleGroups { get; set; }
    public DbSet<Service> Services { get; set; }
    public DbSet<ServiceRole> ServiceRoles { get; set; }
    public DbSet<ServiceDetails> ServiceDetails { get; set; }
    public DbSet<ActionProvider> ActionProviders { get; set; }
    public DbSet<RoleGroupUser> RoleGroupUsers { get; set; }
    //
    public static void InitializeDatabase()
    {
        using (DatabaseContext context = new DatabaseContext())
        {
            context.Database.CreateIfNotExists();
            Database.SetInitializer(new MigrateDatabaseToLatestVersion<DatabaseContext, Configuration>());
        }
    }
}

<connectionStrings>
<add name="MahalehMaDB"
     connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=MahalehDatabase;Integrated Security=True;MultipleActiveResultSets=True;App=EntityFramework"
     providerName="System.Data.SqlClient" />

我很困惑可能阻止EF5使用其表格生成数据库。 请注意,在Global.asax文件的Application_Start方法中调用 InitializeDatabase 方法。 InitializeDatabase方法有问题吗?控制器类也实现不完整,可能是警告吗?我一直在网上冲浪,但无法处理,因此决定来这里!

有没有人有任何想法来处理这个问题?如果信息不充分,请告诉我。

请欣赏......

2 个答案:

答案 0 :(得分:0)

使用以下代码:public DatabaseContext() : base("MahalehMaDB") { }

此代码是连接字符串名称的无效值:base("name:MahalehMaDB") { }

答案 1 :(得分:0)

public Context(): base("MahalehMaDB"){ }

在web.config中:

<add name="MahalehMaDB" connectionString="Data Source=yourservername;
  InitialCatalog=database;
  Integrated Security=true"providerName="System.Data.SqlClient"/>