I've been introducing myself to LinqToSQL lately through a poorly-made project at work. I'm curious as to why this works:
var territories = db.Territories.Where(t => t.PendingUserCount > 0);
But this results in a compilation error:
var territories = db.Territories;
if (someCondition)
territories = territories.Where(t => t.PendingUserCount > 0);
// Cannot implicitly convert 'System.Linq.IQueryable<Territory> to System.Data.Linq.Table<Territory>
I've also tried to call db.Territories.ToList()
, but to no avail.
I'm sure it's just a misunderstanding of how Linq works, but I'd be appreciative if someone could help me out.
You need to use the IQueryable tyupe as others have suggested:
also this linq query maybe also work:
Because you've typed "var" as a Table
<Territory
> and then try to reassign it as a IQueryable<Territory
>.This is equivalent to saying
EDIT: To clarify, var is implicitly strong typed at compile time not run time, unlike dynamically typed scripting language.
You can't re-assign a var to a different type after you've declared it. So your var declaration has already typed it to System.Data.Linq.Table.
It's a fire once thing.