Entity Framework - как мне использовать отношения сущностей в моих расширенных классах?

StackOverflow https://stackoverflow.com/questions/384138

Вопрос

Я пытаюсь расширить частичные классы, которые создает entity framework, чтобы мне было легче работать с объектами, как в приведенном ниже коде (пожалуйста, дайте мне знать, если есть лучший или более исключительный способ сделать это с entity framework)

    Public Sub New(ByVal ProjectID As Integer)
        Dim proj As Project = (From p In db.Project.Include("Status") Where p.ProjectID = ProjectID).First
        _ProjectID = proj.ProjectID
        _ProjectName = proj.ProjectName
        Me.Status.StatusID = proj.Status.StatusID  'I get errors here
        Me.Status.StatusName = proj.Status.StatusName  'and here
    End Sub

Но, конечно, я получаю "Ссылка на объект, не установленная для экземпляра объекта" в строке:Я.Статус.StatusID = проект.Статус.StatusID

Как я могу передать связанные значения сущностей при расширении частичных классов?Или я просто сильно ошибаюсь здесь, и есть гораздо более простой способ сделать то, что я пытаюсь сделать здесь?

Это было полезно?

Решение

Похоже, что вы пытаетесь загрузить объект на основе идентификатора из конструктора

Лично я бы не стал использовать конструктор для загрузки объекта, вы можете либо использовать общую функцию, либо использовать LINQ непосредственно в своем коде для загрузки вашего объекта.

используйте что-то вроде

Public Shared Function GetProjectById(ByVal ProjectId as Integer) as Project
     Dim db As New MyDataContext
     Return (From p In db.Project.Include("Status") Where p.ProjectID = ProjectID).FirstOrDefault
End Function
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top