【发布时间】:2011-10-22 02:23:44
【问题描述】:
我有一堆表,它们都有一个名为 ResourceID 的字段,这些字段是从外部进程填充的。我想遍历每个表并根据主列表验证该 ID。代码简单但重复:
var resList = (from r in dc.ResourceMasterEntities select r.ResourceId).ToList();
var res = (from rs in resList select (int?)rs).ToList();
var stage = (from s in dc.TableOne select s.ResourceId).ToList();
foreach (var invalidResourceID in stage.Except(res).ToList())
{
errList.Add("Bad ID found:" + invalidResourceID );
}
stage = (from s in dc.TableTwo select s.ResourceId).ToList();
foreach (var invalidResourceID in stage.Except(res).ToList())
{
errList.Add("Bad ID found:" + invalidResourceID );
}
// more of the same with different tables
我想创建一个函数,我可以在其中传递表的名称(TableOne、TableTwo 等),而不必编写所有这些重复代码。这可以用Linq完成吗? (最好不要使用ExecuteQuery :-))
【问题讨论】:
-
您是在使用/谈论 Linq-to-SQL 还是在谈论 Entity Framework - 选择一个!
-
它是 EF 但在这种情况下它重要吗?它是针对 SQL 数据库的 linq。如果我错了,请纠正我。
-
Linq-to-SQL 是一个单独的 OR 映射器 - 它是由 C# 团队编写的,或多或少是作为 LINQ 功能的“概念证明”。 EF 支持 LINQ - 称为 Linq-to-Entities。所以 Linq-to-SQL 和 EF 是两个独立的、密切相关的东西——但它们是不同的产品/不同的位。
标签: linq dynamic entity-framework-4