SubmitChanges d'insérer un nouveau record par rapport au lieu étranger d'utilisation celle attribuée
-
08-10-2019 - |
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.
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.