C# 使用where语句的c列表

C# 使用where语句的c列表,c#,sql,asp.net-mvc-3,filtering,C#,Sql,Asp.net Mvc 3,Filtering,我的应用程序是asp.NETMVC,使用LINQtoSQL。我正在尝试使用以下内容来筛选视图 我已使用以下方法将筛选器添加到我的SQL Server视图中: WHERE (dbo.Client.Recstatus IS NULL) OR (dbo.Client.Recstatus = 0) 当我在SQLServerManagementStudio中运行它时,它工作得很好,但是我仍然可以在应用程序中看到条目 我尝试在我的存储库中使用以下内容再次对其进行筛选: List<vw_Client_

我的应用程序是asp.NETMVC,使用LINQtoSQL。我正在尝试使用以下内容来筛选视图

我已使用以下方法将筛选器添加到我的SQL Server视图中:

WHERE (dbo.Client.Recstatus IS NULL) OR (dbo.Client.Recstatus = 0)
当我在SQLServerManagementStudio中运行它时,它工作得很好,但是我仍然可以在应用程序中看到条目

我尝试在我的存储库中使用以下内容再次对其进行筛选:

List<vw_Client_info> searchResult = new List<vw_Client_info>().Where(c=> c.Recstatus != 1);
状态为smallint

我得到以下错误:

无法将类型“System.Collections.Generic.IEnumerable”隐式转换为“System.Collections.Generic.List”。存在显式转换。是否缺少强制转换


如果您能提供帮助,我将不胜感激。

最后您似乎忘了使用ToList方法。试试这个:

List<vw_Client_info> searchResult = 
    new List<vw_Client_info>().Where(c=> c.Recstatus != 1).ToList();

似乎你最后忘了使用ToList方法。试试这个:

List<vw_Client_info> searchResult = 
    new List<vw_Client_info>().Where(c=> c.Recstatus != 1).ToList();

包括Where在内的可枚举方法不返回列表,而是返回IEnumerable

因此,您可以将代码修改为

IEnumerable<vw_Client_info> searchResult = 
          new List<vw_Client_info>().Where(c=> c.Recstatus != 1);

这与编译器为您派生的类型相同


包括Where在内的可枚举方法不返回列表,而是返回IEnumerable

因此,您可以将代码修改为

IEnumerable<vw_Client_info> searchResult = 
          new List<vw_Client_info>().Where(c=> c.Recstatus != 1);

这与编译器为您派生的类型相同


这是因为您正在从Select返回一个匿名类型,并试图将其存储在列表中。投影总是创建匿名类型。
因此,u shd存储在IEnumerable中或使用尾部的ToList。

这是因为您正在从Select返回一个匿名类型,并试图将其存储在列表中。投影总是创建匿名类型。 因此,u shd存储在IEnumerable中或在尾部使用ToList。

两个问题

新列表是新列表没有数据 你必须打电话给ToList在陈述的末尾 你可以试试下面的方法

using (YourDatacontext context= new YourDatacontext(connStr))
{
    List<vw_Client_info> searchResult = 
          context.vw_Client_infos.Where(c=> c.Recstatus != 1).ToList();
}
两个问题

新列表是新列表没有数据 你必须打电话给ToList在陈述的末尾 你可以试试下面的方法

using (YourDatacontext context= new YourDatacontext(connStr))
{
    List<vw_Client_info> searchResult = 
          context.vw_Client_infos.Where(c=> c.Recstatus != 1).ToList();
}

太谢谢你了,侯赛因,我不明白这个错误。你知道为什么如果我用Sql过滤了我的视图,数据仍然会显示吗!再次感谢。@user373721不确定我是否理解你的评论。我正在试图弄清楚,我在sql视图中是否有过滤器,以及何时运行它;它将删除等于1的所有条目。然而,在我的MVC表格中,这些等于1的条目仍然显示。谢谢你,霍森,我不明白这个错误。你知道为什么如果我用Sql过滤了我的视图,数据仍然会显示吗!再次感谢。@user373721不确定我是否理解你的评论。我正在试图弄清楚,我在sql视图中是否有过滤器,以及何时运行它;它将删除等于1的所有条目。然而,在我的MVC表格中,这些等于1的条目仍然显示。谢谢你们所有人的友好和迅速的支持谢谢你们所有人的友好和迅速的支持