'查询结果不能多​​次枚举'

Key*_*dly 1 c# linq wpf

我有一个SQL Server程序我正在访问Linq到Sql.当我执行查询时,我收到错误"查询结果不能多​​次枚举".该参数在txtName文本框中输入,结果显示在lstName列表视图中.

 public void GetSearchString()
 {
     Data.Database.FRCDatabaseDatacontext context = 
         new Data.Database.FRCDatabaseDatacontext();
     var result = context.GetSearchProcedure(txtName.Text);
     foreach (GetSearchProcedureResult search in result)
         if ( search.UserGuid == 
               Workspace.Instance.ActiveUser.CurrentUserActiveDirectoryGuid)
         {
             lstName.ItemsSource = result.ToList();
         }
 }
Run Code Online (Sandbox Code Playgroud)

此方法将返回每个结果,但我想返回guids匹配的结果.

谢谢!

Data.Database.FRCDatabaseDatacontext context = 
    new Data.Database.FRCDatabaseDatacontext();
var result = context.GetSearchProcedure(txtName.Text);
lstName.ItemsSource = result.ToList();
Run Code Online (Sandbox Code Playgroud)

Ali*_*lay 5

您试图不止一次枚举数据 - 一次在数据中foreach然后再次与.ToList()每次匹配UserGuid,这导致错误.

也许这个LINQ select语句将有助于:

public void GetSearchString()
{
    Data.Database.FRCDatabaseDatacontext context = new Data.Database.FRCDatabaseDatacontext();

    lstName.ItemsSource = (from s in context.GetSearchProcedure(txtName.Text) 
                  where s.UserGuid == Workspace.Instance.ActiveUser.CurrentUserActiveDirectoryGuid
                  select s).ToList();
}
Run Code Online (Sandbox Code Playgroud)