Я все еще сталкиваюсь с некоторыми проблемами при использовании LINQ-to-SQL.
Я также ищу ответы самостоятельно, но эта проблема настолько неудобна, что у меня возникают проблемы с поиском правильных ключевых слов для ее поиска.
У меня есть этот код здесь:
public CustomTask SaveTask(string token, CustomTask task)
{
TrackingDataContext dataConext = new TrackingDataContext();
//Check the token for security
if (SessionTokenBase.Instance.ExistsToken(Convert.ToInt32(token)) == null) return null;
//Populates the Task - the "real" Linq to SQL object
Task t = new Task();
t.Title = task.Title;
t.Description = task.Description;
//****The next 4 lines are important****
if (task.Severity != null)
t.Severity = task.Severity;
else
t.SeverityID = task.SeverityID;
t.StateID = task.StateID;
if (task.TeamMember != null)
t.TeamMember = task.TeamMember;
else
t.ReporterID = task.ReporterID;
if (task.ReporterTeam != null)
t.Team = task.ReporterTeam;
else
t.ReporterTeamID = task.ReporterTeamID;
//Saves/Updates the task
dataConext.Tasks.InsertOnSubmit(t);
dataConext.SubmitChanges();
task.ID = t.ID;
return task;
}
Проблема в том, что я отправляю серьезность, а затем, когда у меня возникает такая ситуация:
Состояние БД перед вызовом метода:
ИД
1 высокий
2 средних
3 низких
Вызовите метод, выбрав «средний» уровень серьезности
Состояние БД после вызова метода:
Имя ID
1 высокий
2 средних
3 низкий
4 средних
Дело в том, что:
-Почему это дублирует эту запись?
Некоторые пояснения к коду:
CustomTask - почти то же самое, что и Task, но у меня были проблемы с сериализацией, которые можно увидеть здесь
Edit: только что узнал, что код отправляет объект Severity, а не ID, я собираюсь изменить его. Но все же очень странно, что он дублирует запись: (
Edit2: обновлен вопрос из-за новой информации