世界のやまさ

SEKAI NO YAMASA

AppHarbor に ASP.NET MVC4 + Entity Framework + SQL Server で DB 接続させてみた

前回はDB接続できなかったので、できるようにしてみた。

http://mvc4sample.apphb.com/Home/Dbmanipulate

ソースは Github においてます。

https://github.com/nnasaki/tryAppHarbor.git


DB の接続方法は思ったより簡単だった

  1. Add-ons から SQL Server をインストールする
  2. Automatic migrations with Entity Framework 4.3を参考に進める
  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 しようとして失敗していると思うんだけど、後日調査する。