最初にちょっとしたアドバイス..
更新されたファイルを自動的にフェッチしないため、webapp のみを使用している場合は注意が必要です。少なくともすぐに使えるものではありません。Web アプリケーションは、長期間使用されていない場合、IIS によってアンロードされ、ほとんどの場合 "リアクティブ" アプリケーションです。
しかし... 毎晩特定の時間に Web ページを開いてインポートを開始するタスクをスケジュールすることは可能です。
System.Net.HttpWebRequest を使用して、次のように xml をローカルの一時フォルダーにフェッチできます。
HttpWebRequest req = WebRequest.Create("http://url.to/file.xml") as HttpWebRequest;
// check if the cast went well
if (req != null) {
try {
HttpWebResponse resp = req.GetResponse() as HttpWebResponse;
System.IO.FileStream outFileStream =
System.IO.File.Create(@"Path\To\localfile.xml");
resp.GetResponseStream().CopyTo(outFileStream);
outFileStream.Close();
outFileStream.Dispose();
}
catch (ExceptionTypeA ex1) {
// Catch all specific exceptions... ommitted here for brevity
}
}
その後、XDocument / XElement ( Linq to Xml ) を使用して Xml ファイルからデータを抽出し、標準の ADO.NET API を使用して DB インポートを作成および処理できます。
(リレーショナル) データベースにインポートした後でのみ、エンティティ フレームワークを完全に使用してデータの取得/変更を行うことができます。すべての xml データを構造化された POCO 型のコレクションに変換し、エンティティ フレームワークを使用してこれらのコレクションにクエリを実行することもできるかもしれませんが、正直なところ、それが最善の方法だとは思いません。