C#EF6将Linq结果绑定到DataGridView,其中日期列为null
总之,我对下面的Linq查询有一个问题:C#EF6将Linq结果绑定到DataGridView,其中日期列为null,c#,linq-to-entities,entity-framework-6,C#,Linq To Entities,Entity Framework 6,总之,我对下面的Linq查询有一个问题: private void BindDataGrid(string _filter) { using (var context = new Kennels_Data_ModelContainer()) { var grid = context.Pricings .Where(x => x.AnimalType.Type == _filter) .Select(x=>
private void BindDataGrid(string _filter)
{
using (var context = new Kennels_Data_ModelContainer())
{
var grid = context.Pricings
.Where(x => x.AnimalType.Type == _filter)
.Select(x=> new {x.PriceStart, x.PriceEnd, x.Price});
if (grid != null)
{
var results = grid.ToList();
pricingDataGridView.DataSource = results;
pricingDataGridView.Columns[0].Width = 80;
pricingDataGridView.Columns[1].Width = 80;
pricingDataGridView.Columns[2].Width = 57;
}
}
}
我正在使用Visual Studio 2013和Entity framework 6以及SQL Server 2012
在我更改数据库中的PriceEnd
列以允许它保留空值之前,查询一直运行良好,我知道至少有一行中有空值
此代码保存在Windows窗体中,并由窗体的Load方法调用,以绑定到pricingdataGridView
代码抛出System.NullReferenceException
,其他信息是对象引用未设置为对象的实例
我已经查看了所有内容,在Linq查询的where子句中找到了大量关于处理null
的引用,但在返回的集合中,我没有找到任何与处理null
值相关的内容
感谢您的帮助
干杯。首先,EF模型更新了吗?如果模型中的
PriceEnd
字段保持decimal
,但应变为decimal?
LINQ空检查,以避免这些记录:
... context.Pricings.Where(x => x.AnimalType.Type == _filter && x.PriceEnd != null)...
感谢您的回复,但是我需要返回记录,即使PriceEnd列包含空值。问题在于将记录绑定到DataGridView时(即使字段为空)。@BarryO'Kane可能?我没有相关的WinForms经验。很抱歉响应延迟,我将接受您的回答,因为它有助于正确格式化网格中的空值。但事实证明,在构造函数中初始化Component()之前,我已经将用于将数据绑定到datagridview的代码移到了。这就解决了问题。