0

私は EF について頭を悩ませようとしていますが、ハードルにぶつかりました。単純なブログ/投稿構造を使用していて、クラスを作成しました。次に例を示します。

''' <summary>
''' Represents a blog in the database
''' </summary>
''' <remarks></remarks>
Public Class Blog
    Public Property BlogID As Integer
    Public Property Name As String

    ''' <summary>
    ''' All posts in this blog
    ''' </summary>
    ''' <value></value>
    ''' <returns></returns>
    ''' <remarks></remarks>
    Public Property BlogPosts As List(Of BlogPost)
End Class

今これをしたら

    Using db As New DBContext
        _blog = db.Blogs.
            FirstOrDefault(Function(m) m.BlogID = BlogID)

        Dim _posts = _blog.BlogPosts.First
    End Using

BlogPosts で null 参照例外が発生しました。これは遅延読み込みではありません。

これで、.Include を使用して強制的に動作させることができますが、それではオブジェクトが無効になります。

私が見つけたすべての c# の例では、BlogPosts プロパティが "Virtual" で宣言されていますが、その VB バージョンが何であるかわかりません。例えば:

public virtual ICollection<BlogPosts> BlogPosts { get; set; } 
4

2 に答える 2

1

プロパティをオーバーライド可能にすることでソートされました

于 2012-12-18T18:04:47.423 に答える
0

この例に示すように、overrides キーワードを使用します。

これでうまくいくはずです。

于 2012-12-18T18:05:49.203 に答える