出于某种原因,我已经开始从数据库设计开发。然后我使用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");
});
}
}
答案 0 :(得分:2)
如果您希望EF为您创建数据库,则需要在上下文构造函数中设置正确的初始值设定项。例如:
public YourContextEntities() : base("name=ConnectionStringName")
{
Database.SetInitializer(new CreateDatabaseIfNotExists<YourContextEntities>());
}