私はテーブルの束を持っていて、すべてがResourceID
というフィールドを持っていて、外部のプロセスから取り込まれています。私は各テーブルを調べて、そのIDをマスターリストに対して検証したいと思います。コードはシンプルですが、繰り返し取得します:異なるテーブル名を動的に指定するLinq-to-Entities(EF4)クエリをどのように呼び出すことができますか?
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でできますか? (そして好ましくは :-)を使用しないでください)
** Linq-to-SQL **または** Entity Framework **について使用しているか話していますか? –
それはEFですが、この文脈では重要ですか?これは、SQLデータベースに対して行うlinqです。私が間違っていたら、私を真っ直ぐにしてください。 – HitLikeAHammer
** Linq-to-SQL **は、C#チームによって書かれた別個のORマッパーです。LINQの機能の「概念の証明」として多かれ少なかれ書かれています。 EFはLinq-to-Entitiesと呼ばれるLINQをサポートしています。だから、Linq-to-SQLとEFは、密接に関連する2つの独立したものですが、それぞれ異なる製品/異なるビットです。 –