Ciao a tutti
Sto per la prima volta utilizzando EF e ho generato le classi POCO dal DataModel.
Per scrivere le query parametri sto provando ad utilizzare PredicateBuilder.
Pensavo di aver capito come funzionava, ma al lato pratico... non ci ho capito nulla :-)
Ho questa query:

string sqlStatus = string.Empty;
if (status == "ON")
sqlStatus = " AND isapproved='1' ";
else if (status == "OFF")
sqlStatus = " AND isapproved='0' ";

string sql = "SELECT u.* " +
"FROM aspnet_Users u INNER JOIN aspnet_Membership m ON u.UserId=m.UserId " +
"WHERE 1 " + sqlStatus +
"GROUP BY u.UserId " +
"ORDER BY u.UserName";

Devo riscrevere la query utilizzando PrediteBuilder e quì nascono i problemi. Negli esempi che ho trovato tutti i predicati sono definiti in funzioni, mentre io vorrei definire le condizioni nella stessa funzione in cui definisco l'interrogazione che devo eseguire.
Partendo da questo esempio:

staticvoid QueryCustomers (Expression<Func<Purchase, bool>> purchasePredicate)
{
var data = newDemoData ();
var query =
from c in data.Customers.AsExpandable ()
where c.Purchases.Any (purchasePredicate.Compile ())
select new {
c.Name,
FilteredPurchases =
from p in c.Purchases.Where (purchasePredicate.Compile ()) select p.Price
};
}

Ho scritto questo:

Expression<Func<aspnet_Membership, bool>> sqlStatus;
if(status == "ON")
sqlStatus = u => u.IsApproved == true;
else if(status == "OFF")
sqlStatus = u => u.IsApproved == false;

using (mcEntities context = new mcEntities())
{
var query =
from c in context.aspnet_Users.AsQueryable()
where c.aspnet_Membership.
}

Ora quando vado a scrivere 'where c.aspnet_Membership" non mi da 'Where' tra le possibili opzioni, ma visualizza i metodi e le proprietà di aspnet_Membership.

Dove sbaglio? Chi può riscrivere la mia query in modo da capire come fare per le altre query?
Dove posso trovare esempi pratici e non solo parti di codice per capire come funziona PredicateBuilder?
C'è qualche alternativa a PredicateBuilder per scrivere query parametriche con linq che mi permetta di avere un codice pulito, di definire le condizioni nella stessa procedura della quesry e utilizzare la struttura:
var test =
from...
where...
select...

Grazie mille