Entity Framework - ¿cómo se utiliza las relaciones de entidad en mis clases extendidas?
Pregunta
Estoy tratando de extender las clases parciales que el marco de la entidad crea para que pueda trabajar más fácilmente con objetos como en el código de abajo (por favor, hágamelo saber si hay una manera mejor o más acceptable de hacer esto con el marco de la entidad )
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
Pero, por supuesto, tengo la "Referencia a objeto no establecida como instancia de un objeto" en la línea: Me.Status.StatusID = proj.Status.StatusID
¿Cómo puedo pasar a través de los valores de entidades relacionadas al extender las clases parciales? O solo estoy fuera de lugar aquí y hay una manera mucho más fácil de hacer lo que estoy tratando de hacer aquí?
Solución
Parece que su tratando de cargar el objeto basado en la identificación de la Construtor
Yo personalmente no utilizar el constructor para cargar el objeto, puede utilizar una función compartida o utilizar LINQ directamente en el código para cargar el objeto.
usar algo como
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