Я использую последнюю версию расширений Telerik MVC, ASP.NET MVC 3 с механизмом представления Razor и код Entity Framework 4.1.
Посмотреть модель:
public class EditGrantApplicationViewModel
{
// Other properties
public DateTime HospitalisedFromDate { get; set; }
public DateTime HospitalisedToDate { get; set; }
}
Метод действия контроллера:
public ActionResult Create()
{
EditGrantApplicationViewModel viewModel = new EditGrantApplicationViewModel();
return View(viewModel);
}
Создать вид:
<tr>
<td valign="top"><label>From:</label></td>
<td>@(Html.Telerik().DatePickerFor(x => x.HospitalisedFromDate)
.Name("HospitalisedFromDate")
)<br>
@Html.ValidationMessageFor(x => x.HospitalisedFromDate)
</td>
<td> </td>
<td valign="top"><label>To:</label></td>
<td>@(Html.Telerik().DatePickerFor(x => x.HospitalisedToDate)
.Name("HospitalisedToDate")
)<br>
@Html.ValidationMessageFor(x => x.HospitalisedToDate)
</td>
</tr>
Класс заявки на получение гранта:
public class GrantApplication
{
// Other properties
public DateTime HospitalisedFromDate { get; set; }
public DateTime HospitalisedToDate { get; set; }
}
Контекст:
public class HbfContext : DbContext
{
public DbSet<Bank> Banks { get; set; }
public DbSet<AccountType> AccountTypes { get; set; }
public DbSet<GrantApplication> GrantApplications { get; set; }
public DbSet<AuditEntry> AuditEntries { get; set; }
}
Таблица подачи заявок на грант:
HospitalisedFromDate datetime null
HospitalisedToDate datetime null
У меня есть пара вопросов относительно дат и того, как код EF 4.1 впервые обрабатывает даты.
Когда представление загружается в первый раз, HospitalisedFromDate и HospitalisedToDate инициализируются как 0001/01/01. Мне не нужно выбирать дату. Поэтому, если ничего не выбрано, он попытается вставить 0001/01/01 в мою таблицу базы данных. И вот когда я получаю ошибку:
Преобразование типа данных datetime2 в тип данных datetime привело к значению, выходящему за пределы допустимого диапазона. \ R \ nОтношение было прекращено.
Как бы это исправить, чтобы оно добавляло значение NULL в столбец таблицы, если ничего не выбрано?