En utilisant constructeur pour charger des données dans subsonic3?
-
23-09-2019 - |
Question
Je reçois une erreur en essayant de charger un enregistrement par le constructeur.
Le constructeur est:
public Document(Expression<Func<Document,bool>> expression);
et je tente de charger un seul élément dans comme celui-ci
var x = new Document(f=>f.publicationnumber=="xxx");
publicationnumber est pas une clé mais essayé de faire un il une clé unique et toujours pas de go ..
Suis-je tout à fait tort en ce qui concerne l'utilisation du constructeur? et quelqu'un peut-il s'il vous plaît me dire comment utiliser ce constructeur?
L'erreur que je reçois est:
Méthode d'essai TestProject1.UnitTest1.ParseFileNameTwoProductSingleLanguage a jeté exception: System.NullReferenceException:
avec le stacktrace suivant:
SubSonic.Query.SqlQuery.Where
[T]
(expression Expression1` expression)
1
Load`[T]`(T item, Expressionexpression)
) dans C: \ @ Projets \ DocumentsSearchAndAdmin \ DocumentsSearchAndAdmin \ generated \ ActiveRecord.cs: ligne 5613
db.Document..ctor(Expression``1
repos enlevé pour la simplicité
Cordialement
Dennis
La solution 2
Je viens de recevoir la source subsonique, et a découvert qu'il fallait avec l'analyseur d'expression et mon manque de connaissance de celui-ci .. mon côté droit de l'expression était en fait un élément dans un tableau de chaînes - et s [PUBNO ] (PUBNO est un const) et il cherchait une colonne nommée s au lieu de publicationnumber, je ne sais pas si ce bug ia ou non dans les classes LINQ
pas moins - j'ai réussi à le faire fonctionner en créant une variable locale contenant la valeur de s [PUBNO] et utiliser cette place ...
// dennis
Autres conseils
Utiliser ==
au lieu de =
, i.e.:.
...(f=>f.publicationnumber == "xxx");