Мне нужно получить первичный ключ для строки, а затем вставить его в один из других столбцов в строке.
Итак, я попытался сделать что-то вроде этого:
newsObj = new news();
newsObj.name = "test"
newsObj.Save();
newsObj.url = String.Format("blah.aspx?p={0}",newsObj.col_id);
newsObj.Save();
Но он не обрабатывает его как один и тот же объект данных, поэтому newsObj.col_id всегда возвращается как ноль. Есть ли другой способ сделать это? Я попробовал это на другой странице, и чтобы заставить его работать, я должен был установить newsObj.SetIsLoaded(true);
Это фактический блок кода:
page p;
if (pageId > 0)
p = new page(ps => ps.page_id == pageId);
else
p = new page();
if (publish)
p.page_published = 1;
if (User.IsInRole("administrator"))
p.page_approved = 1;
p.page_section = staticParent.page_section;
p.page_name = PageName.Text;
p.page_parent = parentPageId;
p.page_last_modified_date = DateTime.Now;
p.page_last_modified_by = (Guid)Membership.GetUser().ProviderUserKey;
p.Add();
string urlString = String.Empty;
if (parentPageId > 0)
{
urlString = Regex.Replace(staticParent.page_url, "(.aspx).*$", "$1"); // We just want the static page URL (blah.aspx)
p.page_url = String.Format("{0}?p={1}", urlString, p.page_id);
}
p.Save();
Если я наведите курсор мыши на p.Save (); Я могу видеть правильные значения в объекте, но БД никогда не обновляется, и нет никаких исключений.
Спасибо!