SubmitChanges d'insérer un nouveau record par rapport au lieu étranger d'utilisation celle attribuée

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

Question

J'obtenu les tableaux ci-après avec des relations valides comme indiqué ci-dessous:

 Report
      ------>ReprotDataSource
                --------->SharePointDomain

Maintenant, quand j'essayez ce qui suit (le nouveau lien ReprotDataSource au SharePointDomain sélectionné), il insertes un nouveau SharePointDomain enregistrement au lieu de refrence au SharePointDomain avec 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();

Il fonctionne très bien quand je définir l'ID à mon auto (2)

toutes les explications.

Je vous remercie à l'avance.

Était-ce utile?

La solution

L'objet que vous ajoutez doit provenir du même contexte de données, sinon il comptera comme un insert implicite. Je devine que cet objet est venu d'ailleurs; une précédente données contexte peut-être. Ceci est délicat si vous en mémoire cache l'objet entre les requêtes. Peut-être situé juste à l'id ... à la place: p

Vous pourriez avoir une certaine joie détacher et attacher au besoin, mais il est probablement pas la peine.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top