Техника, которую я использовал для этого в том прошлом, должна была иметь понятие "поколений" в базе данных, каждое изменение увеличивает текущее число поколения для базы данных - при использовании подрывной деятельности думайте изменения. Каждая запись имеет 2 числа поколения, связанные с ним (2 дополнительных столбца на таблицах) - поколение, что запись начинает быть допустимой для, и поколение, для которого это прекращает быть допустимым. Если бы данные в настоящее время допустимы, второе число было бы ПУСТЫМ или некоторый другой универсальный маркер.
Так для вставки в базу данных:
, Если Вы обновляете некоторые данные:
, просто вопрос маркировки данных как завершающийся в текущем поколении.
Для получения конкретной версии данных найдите, какое поколение Вы после и ищете данные, допустимые между теми версиями поколения.
Пример:
Создают человека.
|Name|D.O.B |Telephone|From|To |
|Fred|1 april|555-29384|1 |NULL|
Обновление номер телефона
|Name|D.O.B |Telephone|From|To |
|Fred|1 april|555-29384|1 |1 |
|Fred|1 april|555-43534|2 |NULL|
Удаляют fred:
|Name|D.O.B |Telephone|From|To |
|Fred|1 april|555-29384|1 |1 |
|Fred|1 april|555-43534|2 |2 |
Думаю, я нашел то, что искал:
protected void Page_Init(object sender, EventArgs e)
{
HtmlLink css = new HtmlLink();
css.Href = "css/fancyforms.css";
css.Attributes["rel"] = "stylesheet";
css.Attributes["type"] = "text/css";
css.Attributes["media"] = "all";
Page.Header.Controls.Add(css);
}
Также MSDN описывал, как этого добиться: HtmlLink Class
Its much easier and more flexible to do this:
MasterPage:
<head>
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
</head>
Child-Page 1:
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
<link href="css/fancyforms.css" rel="stylesheet" type="text/css" />
</asp:Content>
Child-Page 2:
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server">
<link href="css/NOTfancyforms.css" rel="stylesheet" type="text/css" />
</asp:Content>
You can include the CSS file declaratively, i.e. in the *.aspx
file: see for example this answer.