Entity Framework - как мне использовать отношения сущностей в моих расширенных классах? - PullRequest
1 голос
/ 21 декабря 2008

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

    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

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

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

1 Ответ

2 голосов
/ 21 декабря 2008

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

Лично я бы не использовал конструктор для загрузки объекта, вы можете использовать совместно используемую функцию или использовать 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
...