最近、MVC 4 と Entity Framework を使用して Web アプリを作成しています。次に示すように、私のデータベース「ppProject」モデルではうまくいっています。
Public Class ppProject
<Key()>
Public Property ProjectID As Integer
Public Property ClientID As Integer
Public Property ProjectTitle As String
Public Overridable Property Client As ppClient
Public Overridable Property Milestones As ICollection(Of ppMilestone)
Public Overridable Property Tasks As ICollection(Of ppTask)
End Class
問題は、従業員の新しいテーブル「ppEmployees」を追加していることです。このようにして、Project は、Employees テーブルへの外部キーである ProjectManager を持つことができます。これらは、ProjectManagerID (外部キー) が EmployeeID (主キー) にリンクされている新しいモデルです。
Public Class ppProject
<Key()>
Public Property ProjectID As Integer
Public Property ClientID As Integer
Public Property ProjectTitle As String
Public Property ProjectManagerID As Integer 'NEW'
Public Overridable Property Client As ppClient
Public Overridable Property Milestones As ICollection(Of ppMilestone)
Public Overridable Property Tasks As ICollection(Of ppTask)
Public Overridable Property ProjectManager As ppEmployee 'NEW'
End Class
Public Class ppEmployee
<Key()>
Public Property EmployeeID As Integer
Public Property DepartmentID As Integer
Public Property FirstName As String
Public Property LastName As String
Public Overridable Property ProjectsInManagement As ICollection(Of ppProject)
Public Overridable Property TimeItems As ICollection(Of ppTimeItem)
Public Overridable Property Department As ppDepartment
End Class
プロジェクト モデルを変更して従業員モデルを追加すると、エラーが発生します
無効な列名 'ProjectManager_EmployeeID'
これをトリガーしているコード行は、次のビューでプロジェクトに最初にアクセスしたときです。
@For Each proj In client.Projects
これを引き起こしている原因についてのアイデアはありますか? これは命名規則の問題か単純なものに違いありません。なぜなら、これまで他のテーブル モデルでエラーが発生したことがないからです。
編集 -以下の私の答えを見てください。ここでEntity Frameworkが何をしているのかについて非常に混乱しています。