linq(結合)に次の式があり、後でJを使用する必要があるため、「J」を選択しています(現在、Jを選択するだけですが、これを修正したら、後で別のサブクエリ内でJを使用する予定です)
ただし、「V」側を使用する場所を指定できないため、v.IdOFficeは無効です。結合を入れ替えてみましたが、「GVT」を使用できません。
完璧に機能する場所を指定しますが、2つのテーブルに存在する2つの場所を指定する必要があります...したがって、IdOfficeとIdTariffはそれぞれのテーブルにあります..両方ではありません...。
(from gvt in Tariffs
join v in Items
on gvt.IdGroupItem equals v.IdGroupItem
into j
where v.IdOffice == 1 && gvt.IdTariff == 111
select j).Take(50)
おそらく何かばかげている、それは私がどこで使用することができない結合の後に指定されたテーブルに表示されますか?
何か案は?
ありがとう
これは基本的に私が達成しようとしていることです
from gvt in Tariffs
join v in Items
on gvt.IdGroupItem equals v.IdGroupItem
into j
where v.IdOffice == 1 && gvt.IdTariff == 111
select new
{
id = v.IdItem
Tariff = from j
{
test = j.TariffDesc,
test1 = j.TariffPrice
}
基本的に、Idとフィールド内に同じ数の料金が含まれる1つのレコードになります-これが理にかなっている場合はどうなりますか?
}
クエリはうまく機能し、
このように拡張メソッド(c#)を使用できると便利です...これは可能であるため、動的に料金を設定できます...たとえば、クエリを実行し、拡張メソッドを使用します(すでに使用しています)単純なクエリの場合)
public static IQueryable<Models.ItemTariffCol> WithTariffId(this IQueryable<Models.ItemTariffCol> qry, int tariffId)
{
return from t in qry
where t.IdTarifa == tariffId
select t;
}
これはそれを非常に拡張可能にしますか?私がこれを行うことができるが、クエリがどこにないのが普通の場合
ありがとうございました。