使用POCO生成的类作为entitis时无法创建数据库

时间:2014-04-11 11:51:39

标签: c# entity-framework sql-server-2012 entity-framework-6

出于某种原因,我已经开始从数据库设计开发。然后我使用POCO生成我的权限,实体配置和上下文。

在下一步,如果配置文件的连接字符串中指定的数据库不存在,我想让我的应用程序创建新数据库。

我目前遇到的问题如下: 当我试图从我的模型的DBSet获取FirstOrDefault时,我收到以下错误消息

  

System.Data.Entity.Core.EntityCommandExecutionException:错误   执行命令定义时发生。看到内心   细节例外。 ---> System.Data.SqlClient.SqlException:   无效的对象名称' dbo.Role'。

我正在使用我的实体的以下配置

 internal class RoleConfiguration : EntityTypeConfiguration<Role>
    {
        public RoleConfiguration(string schema = "dbo")
        {
            ToTable("Role", schema);
            HasKey(x => x.RoleId);

            Property(x => x.RoleId).HasColumnName("RoleId").IsRequired().HasDatabaseGeneratedOption(DatabaseGeneratedOption.None);
            HasMany(t => t.Roles_RoleId).WithMany(t => t.Roles_ChildRoleId).Map(m =>
            {
                m.ToTable("RoleRoles", schema);
                m.MapLeftKey("ChildRoleId");
                m.MapRightKey("RoleId");
            });
        }
    }

1 个答案:

答案 0 :(得分:2)

如果您希望EF为您创建数据库,则需要在上下文构造函数中设置正确的初始值设定项。例如:

public YourContextEntities() : base("name=ConnectionStringName")
{
    Database.SetInitializer(new CreateDatabaseIfNotExists<YourContextEntities>());
}