Dublitchanges вставляет новую запись для внешних отношений вместо того, чтобы использовать назначенный
-
08-10-2019 - |
Вопрос
Я получил следующие таблицы с действительными отношениями, как показано ниже:
Report
------>ReprotDataSource
--------->SharePointDomain
Теперь, когда я пробую следующую (ссылка на новую репроспоздание для выбранного SharePointMoindomain), он вставляет новую запись SharePointMoindomain вместо того, чтобы осквернить его в SharePointMoindomain с 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();
Это работает нормально, когда я устанавливаю удостоверение личности моего себя (2)
Любые объяснения.?
Заранее спасибо.
Решение
Объект, который вы добавляете, должны поступать из того же контекста данных, в противном случае он будет считаться неявной вставкой. Я предполагаю, что этот объект пришел из других мест; Предыдущий контекст данных возможно. Это сложно, если вы кэшируете объект между запросами. Может быть, просто установить идентификатор вместо этого ...: P
У вас может быть некоторая радость, отсоединяя и прикрепляя по мере необходимости, но она, вероятно, не стоит того.