Как обработать 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; }
}
Другие вопросы по тегам