SubmitChanges Вставляет новую запись для внешней связи вместо использования назначенной

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

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

Теперь, когда я пытаюсь выполнить следующее (связать новый ReprotDataSource с выбранным доменом SharePoint), он вставляет новую запись SharePointDomain вместо ссылки на домен SharePoint с идентификатором (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)

какие-либо объяснения.

Заранее спасибо.

1 ответ

Решение

Добавляемый объект должен происходить из того же контекста данных, иначе он будет считаться неявной вставкой. Я предполагаю, что этот объект пришел откуда-то еще; предыдущий контекст данных возможно. Это сложно, если вы кешируете объект между запросами. Может быть, просто установить идентификатор вместо...: p

Вы можете испытывать некоторую радость отсоединения и присоединения по мере необходимости, но это, вероятно, не стоит

Другие вопросы по тегам