前回はDB接続できなかったので、できるようにしてみた。
http://mvc4sample.apphb.com/Home/Dbmanipulate
ソースは Github においてます。
https://github.com/nnasaki/tryAppHarbor.git
DB の接続方法は思ったより簡単だった
- Add-ons から SQL Server をインストールする
- Automatic migrations with Entity Framework 4.3を参考に進める
- github に Push する
以上だけど、MVC4 を使っていると2番目がなかなかうまくいかなかった。
MVC4 を使用すると EntityFramework が新しいのが入ってしまい、「install-package EntityFramework -ProjectName Core」をしてインストールしたものとバージョンが不一致となってしまいエラーとなった。
解決策としては、「Core」側の EntityFramework の参照先を「Web」と一致させることで解決した。
この例はDB層をWebプロジェクトから分離できるので割と良いサンプルだと思う。「Core」という名前がいけてないので、「Repository」とかにするとそれっぽくなるんじゃなかろうか。
また、Alias を使用することで Connection String にパスワードを埋め込まないで済むのが良い。
実はまだ問題が残っていて右上の Resister と Login が使用できていない。これは .Net のメンバーシップというセキュリティの機能を使用しているんだけど、ローカルでは動いているのに、サーバー側で動いていないという状況。
たぶん、EntityFramework の Migration で DB を Drop しようとして失敗していると思うんだけど、後日調査する。