Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用POCO生成的类作为实体时无法创建数据库_C#_Entity Framework_Sql Server 2012_Entity Framework 6 - Fatal编程技术网

C# 使用POCO生成的类作为实体时无法创建数据库

C# 使用POCO生成的类作为实体时无法创建数据库,c#,entity-framework,sql-server-2012,entity-framework-6,C#,Entity Framework,Sql Server 2012,Entity Framework 6,出于某种原因,我从数据库设计开始开发。然后,我使用POCO生成实体、实体配置和上下文 在下一步中,如果配置文件的连接字符串中指定的数据库不存在,我希望让我的应用程序创建新数据库 我目前面临的问题如下: 当我试图从我的模型的数据库集获取FirstOrDefault时,我得到以下错误消息 System.Data.Entity.Core.EntityCommandExecutionException:错误 执行命令定义时发生。看内在 详细信息例外。-->System.Data.SqlClient.Sq

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

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

我目前面临的问题如下: 当我试图从我的模型的数据库集获取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");
            });
        }
    }
内部类角色配置:EntityTypeConfiguration
{
公共角色配置(字符串schema=“dbo”)
{
ToTable(“角色”,schema);
HasKey(x=>x.RoleId);
属性(x=>x.RoleId).HasColumnName(“RoleId”).IsRequired().hasDatabaseGenerateOption(DatabaseGenerateOption.None);
HasMany(t=>t.RoleId)。WithMany(t=>t.Roles\u ChildRoleId)。Map(m=>
{
m、 ToTable(“RoleRoles”,模式);
m、 MapLeftKey(“ChildRoleId”);
m、 MapRightKey(“RoleId”);
});
}
}

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

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

您的数据库中是否有表
角色
?这正是问题所在。在我的情况下,没有在我的连接字符串中指定的数据库,我希望创建数据库。