嗨伙计们,我被困在转换到SQL下面的LINQ查询。 我想要的是从(FA-00001,FA-00059)
列表中获得最大数量SELECT MAX(CAST(SUBSTRING(ReferenceId, PATINDEX('%-%', ReferenceId) + 1, LEN(ReferenceId) - PATINDEX('%-%', ReferenceId)) AS int)) AS MaxReferenceId FROM [ClientRC].[dbo].[EHO_Action]
这可以转换为LINQ吗?感谢
答案 0 :(得分:0)
http://msdn.microsoft.com/en-us/library/bb386972.aspx
var myvar = (from v in db.object where v!=null select v.id).Max();
MSDN有很多这样的例子。
或者,如果您正在使用实体框架,则可以直接对datacontext执行查询。只需确保您是否正在使用参数进行参数化,而不是将用户输入直接输入到查询中。 http://msdn.microsoft.com/en-us/library/ee358769.aspx
答案 1 :(得分:0)
试试这个..
var list = DBContext.EHO_Action
.Where(x => x.YourListColumn != null)
.Select(x => x.YourListColumn).ToList(); // Take the list (FA-00001 ,FA-00059) from db to a list
var maxNo = list.Max(x => Convert.ToInt32(x.Split('-')[1]));
请根据您的Linq上下文更改上下文和列名称。
如果你想使用sql,你可以这样做..
var list = DBContext.ExecuteQuery<string>("select yourreqrdcolumn from [ClientRC].[dbo].[EHO_Action]");
答案 2 :(得分:0)
使用匿名投影的另一种方法:
var y = (from record in
(from record in db.ClientRC
select new
{
Group = "x",
ReferenceNumber = Convert.ToInt32(record.ReferenceId.Split('-')[1])
})
group record by new { record.Group } into g
select new
{
MaxReferenceId = g.Max(p => p.ReferenceNumber)
});