【发布时间】:2017-04-05 07:49:24
【问题描述】:
我升级到 Core 1.1 和 Visual Studio 2017。我正在运行一个简单的现有代码行来搜索用户输入字符串的列,但得到错误...
InvalidOperationException:类型的变量“__searchTerm_1” 'System.String' 从范围 '' 中引用,但未定义
简而言之,我的代码是:
public IQueryable<SearchViewModel> ActivitySearch(string searchTerm)
{
var qry = (from act in context.Acts
.Include(x => x.ActivityExt)
select new SearchViewModel()
{
AMCNnumber = act.AMCNnumber
ActivityId = act.ActivityID,
ImplementingPartner = act.ActivityExt.imp,
ProjectTitle = act.Name,
Description = act.Description,
StartDate = act.StartDate,
EndDate = act.EndDate
});
if (!String.IsNullOrEmpty(searchTerm))
{
qry = qry.Where(x => x.AMCNnumber.Contains(searchTerm);
}
return qry.ToArray();
}
【问题讨论】:
-
添加了更多代码。这个搜索已经工作了一段时间,但随着使用 .Contains 进入 Core 1.1,似乎发生了一些变化。
-
我的立场已得到纠正,EF Core 似乎支持投影到非匿名、非实体类型。
-
AMCNnumber 属性的类型是什么?
-
看起来像一个错误,但是如果将
searchTerm移动到局部变量中,您有解决方法吗?
标签: c# linq asp.net-core asp.net-core-mvc entity-framework-core