我正在从SQL迁移到Linq,我需要一些帮助.我正在测试Linq-to-SQL和Linq-to-Entities.我想尝试两者来决定哪一个最适合我.非常感谢您的帮助.谢谢
从表中选择最小日期值的正确语法(在vb.net中,如果可能)是什么?
Dim mydata As New DataClassesDataContext
Dim myresult = From cv In mydata.T1s
Select cv.DATE1, cv.Date2, cv.Datex
myresult=Dump()
Run Code Online (Sandbox Code Playgroud)
我试过试过用
Select amin=cv.DATE1.Min(), amax=cv.Date1.Max(), bmin=cv.Date2.Min(), etc....
Run Code Online (Sandbox Code Playgroud)
给出了这个错误'Min' is not a member of 'Date'.
我想要获得最小值和最大值的数据如下:
IOrderedQueryable<VB$AnonymousType_0<DateTime,DateTime>> (16 items)
Date1 Date2
17/Oct/09 12:00:00 AM 23/Oct/09 12:00:00 AM
10/Jan/09 12:00:00 AM 15/Feb/09 12:00:00 AM
27/Mar/09 12:00:00 AM 27/Mar/09 12:00:00 AM
30/May/09 12:00:00 AM 30/May/09 12:00:00 AM
25/Jan/09 12:00:00 AM 25/Mar/09 12:00:00 AM
01/Nov/09 12:00:00 AM 01/Nov/09 12:00:00 AM
21/Feb/09 12:00:00 AM 04/Mar/09 12:00:00 AM
02/Mar/09 12:00:00 AM 09/Mar/09 12:00:00 AM
07/Jul/09 12:00:00 AM 07/Jul/09 12:00:00 AM
27/Sep/09 12:00:00 AM 27/Sep/09 12:00:00 AM
05/Nov/09 12:00:00 AM 05/Nov/09 12:00:00 AM
15/Apr/09 12:00:00 AM 15/Apr/09 12:00:00 AM
08/Jun/09 12:00:00 AM 08/Jun/09 12:00:00 AM
07/Jul/09 12:00:00 AM 07/Jul/09 12:00:00 AM
30/Jul/09 12:00:00 AM 30/Jul/09 12:00:00 AM
04/Nov/09 12:00:00 AM 04/Nov/09 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)
现在解决了,但这不是一个完美的解决方案,似乎我需要对每个需要aggreagate函数的列进行单独查询:
Sub Main
Dim mm = (From cv In T1s
Select Datez = (cv.Date1)).Min()
Dim mm1 = (From cv In T1s
Select Datez = (cv.Date1)).Max()
Dim mm2 = (From cv In T1s
Select Datez = (Date2)).Min()
Dim mm3 = (From cv In T1s
Select Datez = (Date2)).Max()
mm.dump()
mm1.dump()
mm2.dump()
mm3.dump()
End Sub
Run Code Online (Sandbox Code Playgroud)
结果如下
10/Jan/09 12:00:00 AM
05/Nov/09 12:00:00 AM
15/Feb/09 12:00:00 AM
05/Nov/09 12:00:00 AM
Run Code Online (Sandbox Code Playgroud)
pja*_*ama 93
这应该适合你
//Retrieve Minimum Date
var MinDate = (from d in dataRows select d.Date).Min();
//Retrieve Maximum Date
var MaxDate = (from d in dataRows select d.Date).Max();
Run Code Online (Sandbox Code Playgroud)
(从这里)
Met*_*urf 36
如果您要查找最早的日期(最小值),则需要排序,然后再返回第一个项目.抱歉C#:
var min = myData.OrderBy( cv => cv.Date1 ).First();
Run Code Online (Sandbox Code Playgroud)
以上将返回整个对象.如果您只想要返回日期:
var min = myData.Min( cv => cv.Date1 );
Run Code Online (Sandbox Code Playgroud)
关于哪个方向,重新:Linq to Sql vs Linq to Entities,这些天真的没什么选择.Linq to Sql不再开发; Linq to Entities(实体框架)是微软最近的推荐路径.
来自Manning Press的Microsoft Entity Framework 4 in Action(MEAP发布):
LINQ to SQL的未来如何?
出于兼容性原因,将LINQ to SQL包含在Framework 4.0中并不是一个秘密.Microsoft已明确声明Entity Framework是推荐的数据访问技术.在未来,它将得到强有力的改进并与其他技术紧密集成,而LINQ to SQL只能维护并且几乎没有进化.
| 归档时间: |
|
| 查看次数: |
129585 次 |
| 最近记录: |