Jor*_*man 4 .net c# linq asp.net linq-to-sql
我正在尝试做的是缩小我稍后将用于数据绑定的查询结果.我希望得到我的gridview中使用的所有ProgramId,并将其从我的下拉列表的数据源中删除(即,这样用户就不能选择创建对象并将其插入到同一ProgramId的gridview中.存在)
这是一些代码:
var query = from goals in DataContext.Goals
select goals;
var query2 = (from goals in query.AsEnumerable()
select goals.ProgramId).ToList(); //List<long?>
var query3 = (from progs in DataContext.Programs
select progs.ProgramId).ToList(); //List<long>
var cgps = query3.Except(query2);
Run Code Online (Sandbox Code Playgroud)
我收到这些错误var cgps = query3.Except(query2);:
错误29'System.Collections.Generic.List'不包含'Except'的定义和最佳扩展方法重载'System.Linq.ParallelEnumerable.Except(System.Linq.ParallelQuery,System.Collections.Generic.IEnumerable)'有一些无效的论点C:...\Shmeh\Shmeh\Shmeh\this.aspx.cs 24 226项目
错误30实例参数:无法从'System.Collections.Generic.List'转换为'System.Linq.ParallelQuery'C:...\Shmeh\Shmeh\Shmeh\this.aspx.cs 24 226项目
如果你有任何想法如何有效地做我想做的事,任何帮助将不胜感激!谢谢!
Except要求序列都是相同的类型.尝试将long列表转换为long?:
var query3 = (from progs in DataContext.Programs
select (long?)progs.ProgramId).ToList(); //List<long?>
Run Code Online (Sandbox Code Playgroud)
您收到此错误的原因long?与类型不同long. Except要求两个可枚举对象具有相同的类型.
你可以做的是从query2中删除空值并将ProgramId转换为 long
var query2 = (from goals in query.AsEnumerable()
where goals.ProgramId.HasValue
select goals.ProgramId.Value).ToList()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8229 次 |
| 最近记录: |