use*_*303 5 code-first asp.net-4.5 visual-studio-2012
我的项目抛出上述错误,因为我表中的发货日期为空。我使用的是 Code First,并且 DateTime 字段在通用集和 SQL 表中都被声明为可为空。我正在用结果集填充网格视图。理想情况下,我希望当 ShipDate 字段为空时,gridview 显示“尚未发货”,但此时,我很高兴能够显示记录。任何帮助是极大的赞赏。这是我正在使用的代码隐藏和上下文类:
public class Order
{
[Key]
public int OrderID { get; set; }
public int CustomerID { get; set; }
public string ShipAddress { get; set; }
public string ShipCity { get; set; }
public string ShipState { get; set; }
public string ShipZip { get; set; }
[ScaffoldColumn(false)]
public string PaymentTransactionID { get; set; }
[ScaffoldColumn(false)]
public System.DateTime OrderDate { get; set; }
public System.DateTime? ShipDate { get; set; }
public virtual Customers Customers { get; set; }
public List<OrderDetail> OrderDetails { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
背后的代码是:
public List<OrderDetail> FetchByOrderID()
{
int myOrderID = CusOrderId;
ProductContext db = new ProductContext();
return db.OrderDetails.Where(
c => c.OrderID == myOrderID).ToList();
}
Run Code Online (Sandbox Code Playgroud)
当我尝试通过 LINQ 获取 max(date_column) 时,出现上述错误。该列被定义为 NOT NULL,当查询中没有返回行时,它会尝试将 null 分配给表示日期列的 DateTime 属性。一种解决方案是将日期列更改为可空,这会将实体属性创建为 DateTime 类型?
| 归档时间: |
|
| 查看次数: |
3267 次 |
| 最近记录: |