我在 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
}
基本上,我最终得到了 1 条带有 Id 的记录和一个包含尽可能多关税的字段 - 如果这有意义吗?
}
查询工作得很好,
能够像这样使用扩展方法(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;
}
这使它非常可扩展?如果它是正常的,我可以在哪里执行此操作,但查询不在 where
谢谢你。