Я анализирую несколько небольших файлов XML в объектах EF, а затем загружаю их в базу данных SQL Server 2008.
Определение таблицы:
CREATE TABLE [dbo].[Events](
[ID] IDENTITY(1,1) PRIMARY KEY CLUSTERED NOT NULL,
[EventDate] datetime NULL
)
XML:
<root>
<event date="2012-02-16T13:14:53" />
<event date="2012-02-16T13:14:53" />
<event date="2012-02-15T18:48:32" />
<root>
Разбор XML:
var events = XDocument.Load(xmlStream)
.Descendants("event")
.Select(x => new Event
{
EventDate = (DateTime?)x.Attribute("date")
});
Отправка в БД:
foreach(var event in events)
{
dbContext.Events.Add(event);
}
dbContext.SaveChanges();
И я получаю следующую ошибку:
System.Data.SqlClient.SqlException: The conversion of a datetime2 data type to a datetime data type resulted in an out-of-range value.
Я искал и пробовал все следующее безрезультатно:
- Изменение EDMX 'ProviderManifestToken' с "2008" на "2005"
- Изменение «StoreGeneratedPattern» на «Computed»
- Изменение выражения Linq to XML
Кажется, ничего не работает ... здесь кончаются идеи ...