Я читаю данные из SQLite-DB в C # с помощью LINQ. Он работает нормально, пока в SQLite-DB не появится пустая строка, и мой инструмент не будет работать. Кто-нибудь знает, как я могу пропустить или «обработать» пустую строку (то есть строку только с PrimaryKey, но без FunctionId & Name).
Эта строка дает сбой с «Указанное приведение неверно».
List<Functions> Functions = (from f in context.Functions
select f).ToList();
Я даже пытался:
List<Functions> Functions = (from f in context.Functions
select f).Where(x => x.FunctionId != null).ToList();
Модель:
[Column(IsPrimaryKey = true)]
public int? PrimaryKey{ get; set; }
[Column]
public int? FunctionId{ get; set; }
[Column]
public string Name { get; set; }
Сообщение об ошибке, которое я получаю, это "Указанное приведение неверно". Похоже, что проблема заключается в пустом FunctionId, и я попытался сделать FunctionId обнуляемым, но все равно возникает та же ошибка.
UPDATE: Хорошо, проблема в .ToList ()
Если я напишу
IQueryable<Functions> Functions = (from f in context.Functions
select f)
, это сработает. Затем я должен вручную отфильтровать нулевые значения и преобразовать его в список.