문제

어떤 이유로 나의 데이터베이스 디자인에서 개발을 시작했습니다.그런 다음 내 대상, 엔티티 구성 및 컨텍스트를 생성하기 위해 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>());
}
.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top