色々と覚書シリーズ。
デザイナで作成するのとコマンドラインから作成するdbmlファイルの違い。
【SQL Server2005(Express含む)】
コンストラクタに
public HogeExpressDataContext() :
base(global::Core.Properties.Settings.Default.HogeConnectionString1, mappingSource)
{
OnCreated();
}
というのが作成されます。
でも。
【Compact】
public Hoge(string connection) :
base(connection, mappingSource)
{
OnCreated();
}
引数を0個指定されるコンストラクタは作成されない。
デザイナで作成されるとプロジェクトのプロパティに接続文字列などを自動でセットしてくれるけど、sqlmetalさんで作成した場合はsdf単体から作成するわけだからもちろんプロジェクトのプロパティなど知ったことではない。ので作成してくれない。
作成されないと、いちいち引数を指定しないとダメで面倒なので、引数0個のコンストラクタを追加してあげるとOK。
public hoge() :
base(global::Core.Properties.Settings.Default.LunchConnectionString1, mappingSource)
{
OnCreated();
}
何にせよCompactでデザイナが使えるようになってくれると非常にうれしい・・・。
どこかに使えない理由が書いてあったですねー、探してこよっと。