Установка только идентификатора в объекте Linq to SQL - PullRequest
1 голос
/ 27 декабря 2010

Я использую 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, это работает.Что я делаю не так?

Спасибо, Оскар

1 Ответ

0 голосов
/ 29 декабря 2010

Я сделал некоторые исправления в своем коде, и эта ошибка больше не возникает.Это может быть логическая ошибка, но я не могу точно сказать, что.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...