使用FirstOrDefault查询时的实体System.NotSupportedException

时间:2016-05-27 10:30:03

标签: c# entity-framework linq

我尝试检索唯一元素(如果存在),如果不存在则返回null。

我的职责是:

private Dealer GetOrCreateDealer(DataRow dataRow)
{
        ModelCamwareContext localContext = new ModelCamwareContext();
        string test = dataRow["Dealer"].ToString();
        Dealer dealer = localContext.Dealers.Where(x => x.Name == dataRow["Dealer"].ToString()).FirstOrDefault();
        if (dealer != null)
        {
         ...
        }
        else
        {
         ...
        }
}

我的测试字符串就在这里,以确保我没有dataRow信息的问题,它按预期工作,并给我一个字符串,我想选择我的经销商。

除非我弄错了,否则如果没有经销商可以检索,FirstOrDefault不应该给我任何例外,在这种情况下我应该经销商= null。

我得到的例外:

A first chance exception of type 'System.NotSupportedException' occurred in EntityFramework.dll
A first chance exception of type 'System.NotSupportedException' occurred in EntityFramework.dll
A first chance exception of type 'System.NotSupportedException' occurred in EntityFramework.SqlServer.dll

我错过了什么?

1 个答案:

答案 0 :(得分:1)

实体无法评估其内部的LINQ中的数据表值。尝试这样的事情:

    ModelCamwareContext localContext = new ModelCamwareContext();
    string test = dataRow["Dealer"].ToString();
    Dealer dealer = localContext.Dealers.Where(x => x.Name == test).FirstOrDefault();
    if (dealer != null)
    {

    }
    else
    {

    }