지난 며칠 동안 저는 C#으로 작성된 기존의 구조화 응용 프로그램을 사용하여 사용자 지정 데이터 액세스 계층 대신 Entity Framework를 사용했습니다. 내가 특정 POCO를 만날 때까지 모든 것이 잘 진행되었다.Entity Framework를 기존 데이터베이스 및 Poco 구조체와 함께 사용하는 방법
이 POCO에는 6 가지 속성이 있으며 그 중 4 가지는 기본 유형입니다. 그러나 나머지 2 가지 항목은 다른 기존 POCO이기 때문에 문제가됩니다. 이 내게 문제가있는 이유는 Entity Framework를 사용하여 데이터베이스에 액세스하려고 할 때 Linq to Entity를 사용하면 올바르게 작동하지 않기 때문입니다.
오류 : "명령 정의를 실행하는 동안 오류가 발생했습니다. 자세한 내용은 내부 예외를 참조하십시오." 의 InnerException는 "의 InnerException은 = {"잘못된 열 이름은 'Course_CourseId'\ 연구 \ nInvalid 열 이름 'Student_StudentId'\ 연구 \ nInvalid 열 이름 'Staff_StaffId을'... "}"
는내 데이터베이스 구조는 :
나는 CourseOfferings 표에 대한이UniversityCatalog
Table: Courses
-Field: CourseId (Guid)
-Field: CourseName (String)
-Field: CourseNumber (String)
-Field: Comments (String)
-Field: CreditHours (int)
-Field: CourseTypeId (int) (ForeignKey: CourseTypes.CourseTypeId)
Table: CourseTypes
-Field: CourseTypeId (int)
-Field: CourseTypeName (String)
Table: Staffs
-Field: StaffId (Guid)
-Field: FirstName (String)
-Field: LastName (String)
-Field: EmployeeId (int)
Table: Students
-Field: StudentId (Guid)
-Field: FirstName (String)
-Field: LastName (String)
-Field: Grade (String)
Table: CourseOfferings
-Field: CourseOfferingId (Guid)
-Field: CourseId (Guid) (ForeignKey: Courses.CourseId)
-Field: StaffId (Guid) (ForeignKey: Staffs.StaffId)
-Field: Start Time (String)
-Field: End Time (String)
-Field: DayOfWeek (String)
Table: CourseRegistrations
-Field: CourseOfferingId (ForeignKey: CourseOfferings.CourseOfferingId)
-Field: StudentId (ForeignKey: Students.StudentId)
POCO은 다음과 같습니다
public class CourseOffering
{
public Guid CourseOfferingId { get; set; }
public String DayOfWeek { get; set; }
public String StartTime { get; set; }
public String EndTime { get; set; }
public Course Course { get; set; }
public Student Student { get; set; }
public Staff Staff { get; set; }
}
내가 그러나 내가 일을 할 것입니다 무슨 생각이 없다, 내 상황에 맞는 파일에 일부 사용자 지정 매핑을해야 할 거라고 생각한다. 모든 팁이나 포인터가 크게 도움이 될 것입니다! 감사!
(또한 여기 내 상황에 맞는 파일 :
class GatewayContext: DbContext
{
public DbSet<Course> Course { get; set; }
public DbSet<CourseType> CourseTypes { get; set; }
public DbSet<CourseOffering> CourseOfferings { get; set; }
public DbSet<Staff> Staff { get; set; }
public DbSet<Student> Students { get; set; }
}
주의 :이 그냥
"제대로 작동하지 않습니다"는 도움이되지 않습니다. 실제 컴파일 오류 메시지/런타임 예외를 게시하십시오. – ken2k
그래, 미안해. 깜빡 했네. 오류 메시지와 예외로 질문을 업데이트했습니다. –