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
Вы можете испытывать некоторую радость отсоединения и присоединения по мере необходимости, но это, вероятно, не стоит