【发布时间】:2016-01-03 18:49:14
【问题描述】:
我正在从单独的表中从数据库中获取数据并存储在单独的变量中。
这是第一个列表
var res = (from v in context.MasterValues
join c in context.MasterCategories on v.Category_Id equals c.Id
where c.Model_Key == (int)model && c.Name == tableName && v.Version_Id == version && v.Active == "Y" && c.Name.Equals("FXRates")
select new
{
Id = v.Id,
VersionId = v.Version_Id,
Text1 = v.Text1,
}).ToList();
这是第二个列表
var fxview = context.MasterFXRates.Select
(x => new
{
Currency_code = x.Currency_code,
Rate = x.Rate,
Effective_dt = x.Effective_dt
}
).ToList();
那么现在如何根据我的第一个列表中的数据过滤我的第二个列表 fxview 中的数据? IE。 我需要过滤 list2 的 Currency_code 数据与 List1 的 Text1 匹配的数据,其中有效 dt(日期时间列)为最大/最新日期
例如,如果第二个列表数据有
- ABC , 100 , 2010-10-10
- ABC , 120 , 2014-12-12
- DEF ,700 , 2013-08-02
- DEF ,500 ,2015-06-06
List 1(res) 有以下数据
- 1 , 1 , ABC
- 2、1、DEF
所以过滤后我的最终列表必须有以下输出
- ABC ,120 (由于 2014-12-12 是最晚的日期,因此获取对应的值并过滤重复值 (ABC,100)。)
2.DEF ,500(由于2015-06-06是最晚的日期,所以取对应的值,过滤掉重复值(DEF,&00)。)
【问题讨论】:
-
如果列表只需要过滤,我建议改为
JOIN。
标签: c# entity-framework linq linq-to-entities