mi proyecto actual se basa en Entity Framwork con código primero. Tengo tres tipos: Tarea, Tipo de Tarea y Módulo.Entity Framework crea objetos de clave externa en lugar de usar los que ya están disponibles
public class Task
{
public int ID { get; set; }
public Module Module { get; set; }
public TaskType Type { get; set; }
}
public class TaskType
{
public int ID { get; set; }
public string Name { get; set; }
}
public class Module
{
public int ID { get; set; }
public string Name { get; set; }
}
Existen relaciones de clave foránea definidas dentro de la tabla para el tipo de tarea.
Mi problema es que cuando trato de crear un nuevo objeto Tarea vinculado a objetos TaskType y Module ya disponibles (ID = 1), esos objetos se crean como nuevas filas en sus tablas correspondientes.
TaskRepository repo = new TaskRepository();
Task task = new Task();
task.Module = Modules.SingleOrDefault(m => m.ID == 1);
task.Type = TaskTypes.SingleOrDefault(t => t.ID == 1);
Tasks.Add(task);
Esto crea una nueva fila en mi TaskType-mesa y en mi Módulos de mesa, así en lugar de usar los ya disponibles TaskType-ID y Módulo-ID.
espero haber dejado claro cuál es mi problema ;-)
Gracias de antemano por su ayuda. Lo aprecio.
Saludos, Kevin
¿Está utilizando la misma instancia de contexto para cargar 'Module' y' TaskType' y guardar 'Task'? –
No, recibo Module y TaskType usando métodos de ayuda dentro de otra clase que nuevamente contiene una instancia de mi DbContext. – bitfrickler