实体框架5,代码优先延迟加载不起作用

时间:2012-12-18 18:00:18

标签: .net vb.net entity-framework

我正试图绕过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上得到一个空引用异常,它不是延迟加载。

现在我可以使用.Include强制它工作,但这会使对象失败。

我找到的所有c#示例都声明BlogPosts属性为“Virtual”,我不知道那个VB版本会是什么?例如:

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

2 个答案:

答案 0 :(得分:1)

使属性Overridable对其进行排序

答案 1 :(得分:0)

使用覆盖关键字,如this example

所示

这应该可以解决问题。