Использование конструктора для загрузки данных в subsonic3?
-
23-09-2019 - |
Вопрос
Я получаю сообщение об ошибке при попытке загрузить запись через конструктор.
Конструктор:
public Document(Expression<Func<Document,bool>> expression);
и я пытаюсь загрузить один элемент вот так
var x = new Document(f=>f.publicationnumber=="xxx");
Номер публикации не является ключом, но я пытался сделать его уникальным ключом, но все равно ничего не получилось.
Я совершенно не прав относительно использования конструктора?и может кто-нибудь сказать мне, как использовать этот конструктор?
Ошибка, которую я получаю:
Метод тестирования TestProject1.UnitTest1.ParseFileNameTwoProductSingleLanguage вызвал исключение:System.NullReferenceException:
со следующей трассировкой стека:
SubSonic.Query.SqlQuery.Where
[T]
(Выражение1` expression)
1
Load`[T]`(T item, Expressionexpression)
выражение) в C:\@Projects\DocumentsSearchAndAdmin\DocumentsSearchAndAdmin\Generated\ActiveRecord.cs:линия 5613
db.Document..ctor(Expression``1
остальное удалено для простоты
С уважением
Деннис
Решение 2
Я только что получил исходный код SubSonic и обнаружил, что это связано с анализатором выражений и моим отсутствием знаний о нем..моя правая часть выражения на самом деле была элементом массива строк - и s[PUBNO] (PUBNO - это константа), и она искала столбец с именем s вместо номера публикации, я не знаю, ошибка это или нет в классах linq
тем не менее - мне удалось заставить его работать, создав локальную переменную, содержащую значение s[PUBNO], и используя ее вместо этого...
//Деннис
Другие советы
Использовать ==
вместо =
, то есть:
...(f=>f.publicationnumber == "xxx");