Как обработать TimeSpan, чтобы сохранить его в SQLite с EF6
У меня есть модель, которая содержит 3 свойства:
public class SomeModel
{
[Key]
public int SomeInt { get; set; }
public string SomeString { get; set; }
public TimeSpan Time { get; set; }
}
Если я пытаюсь добавить такую модель в базу данных SQLite, возникает исключение.
using (var db = new MyDataContext())
{
var item = new SomeModel { SomeInt = 123, SomeString = "a string" , Time = new TimeSpan(1,2,3)};
db.SomeModels.Add(item);
try
{
db.SaveChanges();
}
catch (Exception ex)
{
Console.WriteLine(ex);
Console.ReadLine();
throw;
}
}
Исключение:
System.NotSupportedException: "There is no store type corresponding to the EDM type 'Edm.Time' of primitive type 'Time'."
Есть ли способ добавить эту модель в базу данных?
1 ответ
Я предлагаю использовать integer
вместо TimeSpan
поле, пример:
public Int64 TimeSpanTicks{ get; set; }
[NotMapped]
public TimeSpan Time
{
get { return TimeSpan.FromTicks(TimeSpanTicks); }
set { TimeSpanTicks= value.Ticks; }
}