我需要连接两个表格,但只返回第二个表格中与第一个表格记录相关联的所有记录的“值”的总和相同的记录。
from p in db.TPs
join n in db.TNs
on p.Key equals n.Key
where (decimal.Parse(p.Value) == db.TNs.Where( nn => nn.Key == p.Key )
.Sum( nn=> decimal.Parse(kk.Value)))
我正在使用Entity Framework Code-First。
当然,Linq会抱怨:
LINQ to Entities不支持方法'System.Decimal Parse(System.String)'。
表格很大,我必须减少输出,所以在客户端进行此转换是不可能的。列类型转换也不是一个选择。
SQL查询语句为:
select * from TP as p
join * from TN as n on n.Key = p.Key
where p.Value = (select sum(cast(n.Value as decimal(12,2))) from TN where Key = p.Key)
Convert
。 - Odedfrom x in db.TestStringToDecimals select new { x.Id, val= Convert.ToDecimal(x.Value)}
,它为我生成了SQL语句:SELECT [t0].[id] AS [Id], CONVERT(Decimal(29,4),[t0].[value]) AS [val] FROM [TestStringToDecimal] AS [t0]
。 - Yograj Gupta