【发布时间】:2014-04-11 11:51:39
【问题描述】:
出于某种原因,我从我的数据库设计开始我的开发。然后我使用 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");
});
}
}
【问题讨论】:
-
您的数据库中有
Role表吗? -
这正是问题所在。在我的情况下,没有在我的连接字符串中指定的数据库,我希望创建数据库。
标签: c# entity-framework sql-server-2012 entity-framework-6