j: :/: :_ ,;、、;,;,__:!: : : : :
/ r'/;;:='ヘk¬-、__`: : : : :
_,イ (/='゛_r斤:|「`ヾァー-`ニ DataServiceは動的にデータベースを指定出来ない
「:|;ゞ-|:::::i:::::{リ::||_,ノ'″だが・・・DataSourceの生成処理を変更することは出来る
|::l欠"lヽl::::::テ〃゛; それが人類に残された最後の手段なんだ
/: : :l ゞ--‐'^"´
,、‐'´: : : : : l
〈  ̄` ー-¬:卜、 ,.:':
``丶, ̄` '^`ヽ ,:':
| _ /
ヽャ‐‐-__、、 ヽ
,〕!ニ、=-'’ |
L、
_,,、 _ 、
/| / / ` ー 、
_rイ i| l !/ _, イ´` ┐
ノ_,,.、 、| { i| イ'´ _ニ二ス
ノ _ \ヽ { i} /Z _∠r√¨`ハ
厂 _ソ´`` ヾハノ/-‐'´ ヾ=弌
ン_,イ! イ|{ヽ r/二ニ〉
ヾ、j _ __」{ ノ _,,,,、、_! 〉孑/
{ヽ'"フュッキ< `^、''エi'ヽ-,ハr‐}
lrハ '′{ `` j彳ソ
ヾハ、 r'} > 、 /ノミj/
`ヘ} /_ `ー' __,ヽ /|`´
_|ヾ  ̄、、 ゙/ | 、
i(人ヘ /-‐'ノ |
ノ \ 'ー--‐ ', - '′ ヽ、CreateDataSourceをoverrideとは大げさすぎるな・・・
_// `ヽ、/´ > 、_
_/´ ヽ、 | _,、‐'´ `\_まさかここで構築する気か!? 接続文字列を!!!
public class TestDataService : DataService<TestEntities>
{
public static void InitializeService(IDataServiceConfiguration config)
{
config.SetEntitySetAccessRule(typeof(user).Name, EntitySetRights.All);
}
private static int count = 0;
protected override TestEntities CreateDataSource()
{
var sqlBuilder = new SqlConnectionStringBuilder();
sqlBuilder.DataSource = "(local)";
sqlBuilder.IntegratedSecurity = true;
if ((count++ % 2) == 0)
{
sqlBuilder.InitialCatalog = "Test";
}
else
{
sqlBuilder.InitialCatalog = "Test2";
}
var entityBuilder = new EntityConnectionStringBuilder();
entityBuilder.Provider = "System.Data.SqlClient";
entityBuilder.ProviderConnectionString = sqlBuilder.ToString();
entityBuilder.Metadata = "res://*/Test.csdl|res://*/Test.ssdl|res://*/Test.msl";
return new TestEntities(entityBuilder.ToString());
}
}
_
_,,......,、._ /,_:::::\
_,,.i'_- \ \::::\
,/::::::::7i !l/ `i. \::7
|;;;;;;;;;;/,i/| ,'^ i _,> // <未だに Metadata が動的に作れない・・・
>,ハri_'、__`トーl::::::::::ト, '/
゙トー,---'::::,,,,::/ 7||
ヽ::::i'::::::::r''=ー、'/ ||
>;::\:::::ヽ ,/\||
'i_゙,ノ _>:::::>/
〈_,>ア"]