私は多くのデータベースを持っているので、それらをループして、それぞれに対して linq クエリ/更新を実行したいと思います。
のようなことは可能ですか?
foreach(var r in master.sysdatabases)
{
from b from r.chicken
select b.age;
}
クロス データベース サポート用のプレミアム エディションを持っています。
私は多くのデータベースを持っているので、それらをループして、それぞれに対して linq クエリ/更新を実行したいと思います。
のようなことは可能ですか?
foreach(var r in master.sysdatabases)
{
from b from r.chicken
select b.age;
}
クロス データベース サポート用のプレミアム エディションを持っています。
すべてのデータベースに同一の「チキン」テーブルがある場合は、次のようにすることができます。
var builder = new SqlConnectionStringBuilder (Connection.ConnectionString);
foreach (var db in sys.Databases)
{
builder.InitialCatalog = db.Name;
var dc = new TypedDataContext (builder.ToString());
try
{
var query =
from b in dc.Chickens
select b.Age;
query.Dump();
}
catch { ... }
}
私はこのようにそれを解決することができましたが、正直なところ、文字列連結クエリを使用するのは好きではありません。
var r = (from b in Sysdatabases select b.Name).ToList();
foreach(var i in r)
{
try{
var o = ExecuteQuery<string>("select urls from "+i+".dbo.website_setting");
Console.WriteLine(o);
}
catch(Exception){}
}
try、executeは、テーブルが存在しない場合(マスターデータベースなど)用です。