Utilizzando costruttore per caricare i dati in subsonic3?
-
23-09-2019 - |
Domanda
Ricevo un errore durante il tentativo di caricare un record attraverso il costruttore.
Il costruttore è:
public Document(Expression<Func<Document,bool>> expression);
e provo a caricare un singolo elemento in come questo
var x = new Document(f=>f.publicationnumber=="xxx");
publicationnumber non è una chiave, ma provato a fare un è una chiave unica e ancora non va ..
sono io totalmente sbagliata per quanto riguarda l'uso del costruttore? e qualcuno può dirmi come utilizzare quel costruttore?
L'errore sto ottenendo è:
Metodo di prova TestProject1.UnitTest1.ParseFileNameTwoProductSingleLanguage gettato eccezione: System.NullReferenceException:
con il seguente stacktrace:
SubSonic.Query.SqlQuery.Where
[T]
(espressione Expression1` expression)
1
Load`[T]`(T item, Expressionexpression)
) in C: \ @ Projects \ DocumentsSearchAndAdmin \ DocumentsSearchAndAdmin \ generati \ ActiveRecord.cs: linea 5613
db.Document..ctor(Expression``1
il resto ha rimosso per semplicità
Saluti
Dennis
Soluzione 2
Ho appena ottenuto la fonte SubSonic, e scoperto che doveva con il parser espressione e la mia mancanza di conoscenza di ciò .. il mio lato destro dell'espressione era in realtà un elemento in un array di stringhe - e s [PUBNO ] (PUBNO è un const) ed era alla ricerca di una colonna di nome s invece di publicationnumber, non so se questo bug ia o meno nelle classi LINQ
non di meno - sono riuscito a farlo funzionare con la creazione di una variabile locale contenente il valore di s [PUBNO] e l'utilizzo che, invece ...
// dennis
Altri suggerimenti
Usa ==
invece di =
, cioè:.
...(f=>f.publicationnumber == "xxx");