c# - 表为空时获取最大日期并返回默认日期
问题描述
"1900/12/12 00:00:00"
如果表没有行,如何返回日期?我正在尝试获取最大交易日期,如果表中有行,它会很好地工作,否则我会收到一条错误消息,因为ToString()
.
string d = context.AllTransactions.Where(t => t.ID == OID)
.Max(t => t.TransactionDate).ToString("dd/MM/yyyy HH:mm:ss");
TransactionDate
是NOT NULL datetime
场。
解决方案
使用DefaultIfEmpty
之前的方法.Max
(因为它是实体的 linq,您将无法创建新的事务对象,然后首先仅投影日期):
var result = context.AllTransactions.Where(t => t.ID == OID)
.Select(t => t.TransactionDate)
.DefaultIfEmpty(new DateTime(1900,12,12)).Max();
推荐阅读
- python - 如何使用随机生成游戏的不同字符串答案
- python - sys.path 和 PYTHONPATH 但不从另一个文件夹导入本地库
- c - 如何在 CMake 文件中为 C/Ada 代码集成 gnatmake/gnatbind/gnatlink?
- jsf - ConfigurableNavigationHandler 获取结果和原始操作组合的导航案例
- php - 从数据库中获取所有图像并在引导程序 4 轮播 Laravel 5.8 中显示图像
- aframe - 如何在 aframe v1.0.4+ 中以桌面模式启用游戏手柄?
- vb.net - 如何使用 VB.NET windows 服务检查应用程序是否正在运行并关闭或终止应用程序
- python - python Tronado不支持流式传输大量数据
- python - 使用flairNLP进行特征提取
- gradle - 如何使用 Gradle 打包 javafx 应用程序?