SubmitChanges inserciones nuevo récord para las relaciones exteriores en lugar de utilizar la asignada
-
08-10-2019 - |
Pregunta
Me dieron las siguientes tablas con relaciones válidos como se muestra a continuación:
Report
------>ReprotDataSource
--------->SharePointDomain
Ahora, cuando intento el siguiente (enlace al recién ReprotDataSource a la SharePointDomain seleccionada) que insertes un nuevo registro en lugar de SharePointDomain refrence al SharePointDomain con id (2)
//Create new Object
ReportDataSource rprtDS = new ReportDataSource
{
Name = rprtDSSelected.Name,
Parent = rprtDSSelected.Parent,
CreatedBy = Environment.UserName,
CreationDate = DateTime.Now,
Source = rprtDSSelected.Source,
Type = rprtDSSelected.Type
};
if (rprtDS.Type == "SP List")
//here is the issue
rprtDS.SharePointDomain = selectedSharePointDomain;//its id = 2
//Add to EntitySet
TheReport.ReportDataSources.Add(rprtDS);
TheReport.Save();
Funciona bien cuando me puse el id de mi mismo para (2)
explicaciones.?
Gracias de antemano.
Solución
El objeto que va a agregar debe venir de los mismos datos en el contexto, de lo contrario, se considerará como una inserción implícita. Supongo que este objeto ha venido de otra parte; A antes de los datos de contexto, tal vez. Esto es complicado si está almacenamiento en caché el objeto entre las consultas. Tal vez acaba de establecer el id lugar ...: p
Es posible que haya un poco de alegría desasociar y adjuntar como sea necesario, pero probablemente no vale la pena.