Использование конструктора для загрузки данных в subsonic3? - PullRequest
0 голосов
/ 31 марта 2010

Я получаю сообщение об ошибке при попытке загрузить запись через конструктор.

Конструктор:

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)<br> Load`[T]`(T item, Expression 1 expression)<br> db.Document..ctor(Expression``1 выражение) в C: \ @ Projects \ DocumentsSearchAndAdmin \ DocumentsSearchAndAdmin \ Generated \ ActiveRecord.cs: строка 5613
Остальные убраны для простоты

Привет
Dennis

Ответы [ 2 ]

0 голосов
/ 31 марта 2010

Я только что получил источник SubSonic и обнаружил, что это связано с синтаксическим анализатором выражений и моим отсутствием знаний об этом. Моя правая часть выражения была фактически элементом массива строк - и s [PUBNO ] (PUBNO - это const), и он искал столбец с именем s вместо номера публикации, я не знаю, есть ли это ошибка в классах linq

тем не менее - мне удалось заставить его работать, создав локальную переменную, содержащую значение s [PUBNO] и используя ее вместо этого ...

// Дэннис

0 голосов
/ 31 марта 2010

Используйте == вместо =, т. Е .:

...(f=>f.publicationnumber == "xxx");
...