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)
Load`[T]`(T item, Expression
1expression)
db.Document..ctor(Expression``1
) in C: \ @ Projects \ DocumentsSearchAndAdmin \ DocumentsSearchAndAdmin \ generati \ ActiveRecord.cs: linea 5613
  il resto ha rimosso per semplicità

Saluti
Dennis

È stato utile?

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");
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top