问题:希望为每种类型选择 1 行
表: EntryPrices
参加类型 ID (int)
名称 (nvarchar)
价格(整数)
GroupId (int)
FromDate(日期时间) //yyyy-MM-dd
示例: 基本条目 - 100 - 1 - 2012-08-01
赞助商参赛 - 350 - 2 - 2012-08-01
员工入职 - 70 - 3 - 2012-08-01
基本条目 - 150 - 1 - 2012-10-01
基本条目 - 200 - 1 - 2012-12-01
如您所见,有 3 个基本条目。每个都有效,具体取决于他们注册的日期。因此,如果一个人在 9 月中旬注册,他将在 150 年 11 月中旬和 200 年 12 月结束时获得 100 个。
但是,我想根据今天的日期获得“有效”费用,并且我想将其列在下拉列表中。
因此,如果我今天(2012 年 8 月 2 日)查询这个,我应该得到以下行:
基本条目 - 100 - 1 - 2012-08-01
赞助商参赛 - 350 - 2 - 2012-08-01
员工入职 - 70 - 3 - 2012-08-01
如果我查询这个(2012 年 12 月 20 日),我应该得到以下行:
赞助商参赛 - 350 - 2 - 2012-08-01
员工入职 - 70 - 3 - 2012-08-01
基本条目 - 200 - 1 - 2012-12-01
我如何在 linq-to-sql 中构造它?
我的想法是这样的:
var f = from data in mc.AttendingTypes
where DateTime.Now.CompareTo(data.FromDate) > 0
group data by new { data.GroupId, data.Name, data.Price, data.AttendingTypesId }
into newData
select new { newData.Key.Name, newData.Key.Price, newData.Key.AttendingTypesId };