Allora, questo codice funziona e mi permette abbastanza facilmente di eseguire delle ricerche avendo dei parametri di diverso tipo (nel caso in esempio id e numeroInventario)
        private List<Table> get(long? id, long? numeroInventario)
        {
            var ctx = new DB();
            List<Table> numQuery2 = new List<Table>();
            String query = "SELECT * FROM TableWHERE idOrigine is null ";
            if (id!= null)
                query += " AND id= " + id;
            if (numeroInventario != null)
                query += " AND numeroInventario = " + numeroInventario;
            return ctx.Table.SqlQuery(query).ToList();
        }
Il mio problema è che vorrei usar meglio le potenzialità (o almeno la sintassi ) di linq e allora ho scritto questo codice
        private List<Table> get(long? id, long? numeroInventario)
        {
            var ctx = new DB();
            List<Table> result = new List<Table>();
            IQueryable<Table> numQuery2 = ctx.Table.Where(a => a.idOrigine == null);
            if (id!= null)
                numQuery2.Where(a => a.id== id);
            if (numeroInventario != null)
                numQuery2.Where(a => a.numeroInventario == numeroInventario);
            result = numQuery2.ToList();
            return result;
        }
Compila senza errori neanche a runtime, il problema, non del tutto irrilevante, è che non funziona :S
Mi resituisce sempre tutta la lista senza filtrarla. Mi viene da pensare che non gli piaccia che vi siano due (o più) where.
Avete idea di come si faccia?