POCO 생성 클래스를 엔티티로 사용할 때 데이터베이스를 만들 수 없습니다.
-
21-12-2019 - |
문제
어떤 이유로 나의 데이터베이스 디자인에서 개발을 시작했습니다.그런 다음 내 대상, 엔티티 구성 및 컨텍스트를 생성하기 위해 POCO를 사용했습니다.
다음 단계에서 구성 파일의 연결 문자열에 지정된 데이터베이스가 존재하지 않으면 내 응용 프로그램을 새 데이터베이스를 만들고 싶습니다.
그 순간에 직면 한 문제는 다음과 같습니다. 내 모델의 DB 세트에서 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");
});
}
}
. 해결책
EF를 사용자가 데이터베이스를 만들려면 컨텍스트 생성자에서 올바른 초기화 프로그램을 설정해야합니다.예를 들어 다음과 같이 :
public YourContextEntities() : base("name=ConnectionStringName")
{
Database.SetInitializer(new CreateDatabaseIfNotExists<YourContextEntities>());
}
. 제휴하지 않습니다 StackOverflow