SubmitChanges Вставляет новую запись для внешней связи вместо использования назначенной - PullRequest
0 голосов
/ 05 декабря 2010

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

 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 Ответ

1 голос
/ 05 декабря 2010

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

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

...