この方法では、linqを作成します。 Linqはうまく動作しますが、私はデータを正しく見ることができますが、問題は別のメソッドから呼び出す必要があるということです。どうすれば別のメソッドからlinqを呼び出すことができますか?
protected IQueryable method()
{
var v = (from a in BAS1
join b in BAS2 on a.TIP equals b.TIP
join c in BAS3 on a.COM equals c.COM
join d in BAS4 on c.PROV equals d.PROV
join e in BAS5 on d.ID_REG equals e.ID_REG
select new
{
a.ID,
b.SIG,
e.ID_REG,
});
return v.ToString();
}
そして、このメソッドから、私は、LINQを取り、それをフィルタリングするが、それはV = v.Where(X => ....
public ActionResult method2() {
var v = method();
var id = Request.QueryString["id"];
var filter_sig = Request.QueryString["filter_sig"];
var filter_reg = Request.QueryString["filter_reg"];
if (filter_sig!= "")
{
decimal dfiltesig = decimal.Parse(filter_sig);
v = v.Where(x => x.SIG==dfiltesig);
}
if (id!= "")
{
v = v.Where(x => x.ID.ToLower().Contains(id.ToLower()));
}
if (filter_reg!= "")
{
v = v.Where(x => x.ID_REG.ToLower().Contains(filter_reg.ToLower()));
}}
試してもエラーが表示されます。それは "ラムダ式をデリゲート型ではないため 'string'型に変換することはできません" – Ale