2

我正在使用 EF Code First 和 MVC3 开发应用程序。该解决方案包含三个 pprojects;ProjectName.Model仅涉及POCO类,ProjectName.App涉及MVC3 Web 项目,从中删除默认模型文件夹(由 MVC 本身创建),以及包含通用存储库 UnitOfWork 和 DatabaseContext 类的ProjectName.Repository问题是,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 使用其表生成数据库。请注意,InitializeDatabase方法是在 Global.asax 文件的 Application_Start 方法中调用的。InitializeDatabase 方法有问题吗?控制器类也实现不完整,莫非是原因?我一直在网上冲浪,但无法处理,因此决定来这里!

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

请欣赏...

4

2 回答 2

0

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

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

于 2013-05-25T13:27:04.417 回答
0
public Context(): base("MahalehMaDB"){ }

在 web.config 中:

<add name="MahalehMaDB" connectionString="Data Source=yourservername;
  InitialCatalog=database;
  Integrated Security=true"providerName="System.Data.SqlClient"/>
于 2014-03-01T00:06:47.480 回答