将foreach转换为Linq会导致Microsoft.Xrm.Sdk.dll中出现InvalidOperationException

时间:2014-09-03 19:18:15

标签: c# linq linq-to-entities dynamics-crm-2013

我有一个连接到CRM 2013 Organization.svc Web服务的Linq查询。查询工作正常,因为当我枚举结果中的项目时,我得到了我的预期值。

当我尝试将项目列表转换为我的MVC 5站点的SelectListItem列表时,会出现问题。

如果我有这样的代码:

List<SelectListItem> driverList = new List<SelectListItem>();

foreach (var driver in drivers)
{
   driverList.Add(new SelectListItem() {Text = driver.account_name, Value = driver.account_id.ToString()});
}

我没有抛出任何错误。

但是,如果我尝试将它转换为Linq语句(使用Resharper),如下所示:

List<SelectListItem> driverList = drivers.Select(driver => new SelectListItem() {Text = driver.account_name, Value = driver.account_id.ToString()}).ToList();

我从运行时返回错误,如下所示:无效左'String'和右'Nullable`1'参数

在这种情况下,我是否只需坚持使用foreach?

0 个答案:

没有答案