SubmitChanges inserciones nuevo récord para las relaciones exteriores en lugar de utilizar la asignada

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

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.

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top