Самостоятельная ссылка LINQ - PullRequest
0 голосов
/ 17 января 2011

Здравствуйте, у меня есть таблица с полем "id" и полем "parentid". Оба поля являются обязательными, поэтому вы не можете вставить ноль в столбец парентид, чтобы пометить его как «корень» иерархии. У меня проблема с linq, когда при создании нового «корня» мне приходится вводить фиктивную парентиду до тех пор, пока я не узнаю идентификатор нового корня, затем мне нужно обновить поле парентид с правильным идентификатором и сохранить снова. Это кажется глупым, но я еще не нашел лучшего способа сделать это?

TableWithHeirachy xobj = new TableWithHeirachy();
xobj.property1 = "test";
db.TableWithHeirachy.InsertOnSubmit(xobj);
db.SubmitChanges();
xobj.parentid = xobj.id;
db.SubmitChanges();

Это кажется действительно плохим. Пожалуйста, скажите мне, что есть лучший способ!

1 Ответ

1 голос
/ 17 января 2011

Оператор SQL не будет знать будущий идентификатор строки, которую он собирается вставить, пока операция вставки не завершится.

Итак, либо продолжайте, как вы сейчас, либо используйте специальные значения для обозначения корневых записей (ноль, -1 и т. Д.).

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