当对mysql数据库执行linq查询时,结果由多于一行组成

本文关键字:结果 于一行 数据库 mysql 执行 linq 查询 当对 | 更新日期: 2023-09-27 18:15:26

当我在VS2008中使用EF 3.5运行以下查询时,我得到了错误:

Result consisted of more than one row

var drivers = _context.Persons
                          .Where(x => x.client == client)
                          .Select(x => new { x.first_name, 
                                             x.middle_name, 
                                             x.last_name, 
                                             x.person_no})
                          .ToList();

我不确定是什么原因导致这个错误。例如,当我在VS外部运行它时,我在Linpad中运行它,它工作得很好。

我在数据库中有5列:first_name, middle_name, last_name, person_noorder_no

当我执行上述查询与order_no为空,它的工作,但当我把数据在order_no,它失败的错误,我甚至没有带回order_no,所以它是困惑我。

当对mysql数据库执行linq查询时,结果由多于一行组成

代码没问题。我在后台执行sql,在这种情况下,一个函数将根据person_no获得一个名称,这个函数返回多行,因为person_no不是唯一的。所以我有这样的东西:

select 
    fnName(person_no),
    first_name,
    middle_name,
    last_name,
    person_no,
from
    Persons

在上面,fnName返回不止一行。