私は、サーバ層がDBを抽象化し、Linq to SQLを使用する2層プロジェクトでLinq to SQLを使用しています。 クライアント層でオブジェクトを作成し、サーバーに送信します。LinqからSQLオブジェクトへのIDのみの設定
Reporter(このタスクを報告した人)との関係を持つTaskがあるため、TaskにはReporter.IDへのFKであるReportedID列がデータベースにあります。
Linq抽象化では、My Taskに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;
}
問題は、私は例外を取得することである:「試行がレポーターとタスク間の関係を削除するためになされたが、関係者の外部キー(Task.ReporterID)のいずれかがnullに設定することはできません。 "。 Reporterプロパティを使用すると機能します。 私は何が間違っていますか?
は、私は私のコードでは、いくつかのrefactoryを作り、このエラーはもうない、 オスカー