C#EF6将Linq结果绑定到DataGridView,其中日期列为null

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=>

总之,我对下面的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=> 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的代码移到了。这就解决了问题。