1

MVC3 で Code First Entity Framework (4.1) を使用して外部キー関係を宣言する方法を読んだことがありますか? しかし、結果を出すための呼び出しを取得できません。次のエラーがあります。

タイプ 'MyBlog.Tbl_Footer_Item' のプロパティ 'Footer_Item_Header_ID' の ForeignKeyAttribute が無効です。依存タイプ「MyBlog.Tbl_Footer_Item」でナビゲーション プロパティ「Tbl_Footer_Header」が見つかりませんでした。Name 値は、有効なナビゲーション プロパティ名である必要があります。

この行で:

Dim footerNavElements = db.Tbl_Footer_Headers.Where(Function(i) i.Footer_Header_Order = 1).Single.Items

ここに私の親モデルがあります:

Imports System.Data.Entity
Imports System.ComponentModel.DataAnnotations

Public Class Tbl_Footer_Header

    <Key()> Public Property Footer_Header_ID() As Integer
    Public Property Footer_Header_Content() As String
    Public Property Footer_Header_Order() As Integer

    Public Overridable Property Items As ICollection(Of Tbl_Footer_Item)

End Class

Public Class FooterHeaderDbContext
    Inherits DbContext

    Public Property Tbl_Footer_Headers As DbSet(Of Tbl_Footer_Header)

End Class

ここに私の子モデルがあります:

Imports System.Data.Entity
Imports System.ComponentModel.DataAnnotations

Public Class Tbl_Footer_Item

    <Key()> Public Property Footer_Item_ID() As Integer
    <ForeignKey("Tbl_Footer_Header")>
    Public Property Footer_Item_Header_ID() As Integer
    Public Property Footer_Item_Content() As String
    Public Property Footer_Item_Link() As String
    Public Property Footer_Header_Order() As Integer

    Public Overridable Property Header As Tbl_Footer_Header

End Class

Public Class FooterItemDbContext
    Inherits DbContext

    Public Property Tbl_Footer_Items As DbSet(Of Tbl_Footer_Item)
    Public Property Tbl_Footer_Headers As DbSet(Of Tbl_Footer_Header)

End Class

アクションがエラーなしで結果を出すようにするにはどうすればよいですか? ありがとう。

4

1 に答える 1

6

外部キーの注釈は、タイプではなくプロパティの名前にする必要があります。

ナビゲーション プロパティはヘッダーです。

Public Overridable Property Header As Tbl_Footer_Header

したがって、注釈はプロパティを参照する必要があります。次のように変更します。

<ForeignKey("Header")>
Public Property Footer_Item_Header_ID() As Integer
于 2012-09-04T16:14:01.650 に答える