Dublitchanges вставляет новую запись для внешних отношений вместо того, чтобы использовать назначенный

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

Вопрос

Я получил следующие таблицы с действительными отношениями, как показано ниже:

 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

У вас может быть некоторая радость, отсоединяя и прикрепляя по мере необходимости, но она, вероятно, не стоит того.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top