Я использую Linq to SQL в двухуровневом проекте, где серверный уровень абстрагирует БД и использует Linq to SQL.На своем уровне клиента я создаю объект и отправляю его на сервер.
У меня есть задача, которая имеет отношение к Reporter (который сообщил об этой задаче), поэтому в базе данных есть столбец ReportedID, которыйявляется FK для Reporter.ID.
В абстракции Linq моя задача имеет свойство Reporter и свойство ReportedID.
Чтобы сохранить новые задачи, я хотел бы использовать ReportedID, поэтомуУ меня есть этот код:
//Populate the object with the info
Task task = new Task();
task.Title = tbTitle.Text;
task.Description = tbDescription.Text;
task.Severity = ((Severity)lbSeverities.SelectedItem);
//the first state: "open"
task.StateID = 1;
//TODO - Set ReporterID
task.ReporterID = 1;
//Save the task
client.SaveTaskCompleted += new EventHandler<SaveTaskCompletedEventArgs>(client_SaveTaskCompleted);
client.SaveTaskAsync(App.Token, task);
Итак, объект создается и отправляется на сервер, где он сохраняется с использованием этого кода:
public Task SaveTask(string token, Task task)
{
TrackingDataContext dataConext = new TrackingDataContext();
//Saves/Updates the task
dataConext.Tasks.InsertOnSubmit(task);
dataConext.SubmitChanges();
return task;
}
Проблема в том, что я получаюисключение: «Была предпринята попытка удалить отношение между Reporter и Task. Однако один из внешних ключей отношения (Task.ReporterID) не может быть установлен в null.».Если я использую свойство Reporter, это работает.Что я делаю не так?
Спасибо, Оскар