Linq 获取最新日期查询
Linq Get Latest Date Query
我正在尝试根据下面的控制器获取最新日期,但我遇到了这个错误:
“无法将类型 'System.Data.Entity.Infrastructure.DbQuery1[<>f__AnonymousType20
1[System.Nullable`1[System.DateTime]]]' 的对象转换为类型 'System.IConvertible'。”
var latestDt = from n in db.Books
where n.id == id
select new { Date = n.dtBookBorrowed};
DateTime dtPlus1Year = Convert.ToDateTime(latestDt);
我可以知道如何在 linq 中只获取列 latestDate 吗?
我想如果你使用
DateTime.Parse(item.dateAsString)
你的问题应该已经解决了。
您可以试试这个来获取最新插入数据库的日期顺序列表。
var latestDt = db.Books.Where(n => n.id == id).OrderByDescending(x => x.dtBookBorrowed).Select(x => x.dtBookBorrowed).ToList();
您定义的 LINQ 查询表达式 return 是具有 属性 Date
的匿名对象的集合,尽管可能只有一个记录匹配,因为 ID 应该是唯一的。
在您的情况下,我们只需要可以解析为 DateTime
的目标字段,因此流利语法的替代方法如下:-
var book = db.Books.SingleOrDefault(book => book.id == id); // gets matching book otherwise null
if (book != null)
{
var borrowedDate = Convert.ToDateTime(book.dtBookBorrowed);
}
否则,如果您想了解更多关于可能 return 多个结果的查询语法的行为,您可以简化为以下 returns DateTime
对象的集合(即 IEnumerable
) 而不是:-
IEnumerable<DateTime> borrowedDates =
from n in db.Books
where n.id == id
select Convert.ToDateTime(n.dtBookBorrowed);
我正在尝试根据下面的控制器获取最新日期,但我遇到了这个错误:
“无法将类型 'System.Data.Entity.Infrastructure.DbQuery1[<>f__AnonymousType20
1[System.Nullable`1[System.DateTime]]]' 的对象转换为类型 'System.IConvertible'。”
var latestDt = from n in db.Books
where n.id == id
select new { Date = n.dtBookBorrowed};
DateTime dtPlus1Year = Convert.ToDateTime(latestDt);
我可以知道如何在 linq 中只获取列 latestDate 吗?
我想如果你使用
DateTime.Parse(item.dateAsString)
你的问题应该已经解决了。
您可以试试这个来获取最新插入数据库的日期顺序列表。
var latestDt = db.Books.Where(n => n.id == id).OrderByDescending(x => x.dtBookBorrowed).Select(x => x.dtBookBorrowed).ToList();
您定义的 LINQ 查询表达式 return 是具有 属性 Date
的匿名对象的集合,尽管可能只有一个记录匹配,因为 ID 应该是唯一的。
在您的情况下,我们只需要可以解析为 DateTime
的目标字段,因此流利语法的替代方法如下:-
var book = db.Books.SingleOrDefault(book => book.id == id); // gets matching book otherwise null
if (book != null)
{
var borrowedDate = Convert.ToDateTime(book.dtBookBorrowed);
}
否则,如果您想了解更多关于可能 return 多个结果的查询语法的行为,您可以简化为以下 returns DateTime
对象的集合(即 IEnumerable
) 而不是:-
IEnumerable<DateTime> borrowedDates =
from n in db.Books
where n.id == id
select Convert.ToDateTime(n.dtBookBorrowed);