简单的LINQ Select语句

时间:2015-10-29 17:10:25

标签: c# .net linq

我在使用LINQ select语句时遇到了基本的困难。

我想要的很简单:我有一个ID。我使用该ID从表中获取特定值。它确实有效,但有一个转折......

以下是代码:

var myDate = dbContext.tbl_mytable.Where(i => i.myID == item.myID)
                          .Select(i => new {Name = i.KeySourceDate});

我在myDate中期待DateTime。图像显示了我得到的东西。

enter image description here

我理解name = thedate的最终值,因为它在select语句中。

我最后需要的是一个像这样的日期.ToString(“dd / MM / yyyy”),而不是整个对象,或者来自LINQ的任何东西。

3 个答案:

答案 0 :(得分:2)

您正在检索具有ID的行列表,但您所说的内容是单个日期时间。有很多方法可以做到这一点,具体取决于您在使用该ID找到多行的情况下您想要发生什么,或者如果没有找到具有该ID的行,但是这里有一种方式:

var myDate = dbContext.tbl_mytable.First(i => i.myID == item.myID).KeySourceDate;

答案 1 :(得分:0)

您可以在尝试获取结果之前评估Id是否存在。 但基本上,您可以使用以下方式获取日期:

DateTime? myDate;
var record = dbContext.tbl_mytable.FirstOrDefault(i => i.myID == item.myID);
if (record != null){
myDate = record.KeySourceDate
}

答案 2 :(得分:0)

当您通过Linq请求日期字段时,您将获得一个DateTime对象。您所要做的就是在分配值时使用格式化程序字符串作为参数调用toString()方法,如:   ......

new { Name = i.KeySourceDate.toString("dd/MM/yyyy") }