読者です 読者をやめる 読者になる 読者になる

おはよう君需要なし

求不得苦な日々

PORTABOOK用にmicroSDアダプタを買ったよ~

PORTABOOK

 

みなさんもう既に使われてると思うんですけどPORTABOOKでsdカードを刺しっぱなしにするには、MacBook用の少し短いmicroSDを使用すると捗ります。

 

 

サンワサプライ Mac用microSDカードアダプタ ADR-MMICRO
 

 

Amazonでセールをやっていたので、何も考えずに先月ぽちったんですけど、どこも品薄のようで恐ろしく時間かかりました。これから買おうという方は家電量販店で探して買った方が早いかもしれませんね。ぼくはこのおかげでPORTABOOKを持ち運べず、なんか無駄にしたような気がしています(笑)

 

で、感想なんですが、実際に挿してみるとPORTABOOKが特殊な形状をしているので依然少し出たままになってしまいますね。依然と比べるとだいぶマシにはなりましたが…

 


f:id:yoh_mar28:20170115195204j:image


f:id:yoh_mar28:20170115195215j:image

 

蓋がないとちょっと不安になりますね…

 

ラバーなキャップでも良いのであると安心できるのにーって思います。削って納まるようにしてみようかな…

ASP.net MVCでコンテキストを別プロジェクトに分離する

プログラミング

はじめに

Web(MVCなアプリケーション)で使用するデータベースを他のプロジェクトからいじれると便利なことが多いです。コンソールからデータベースを参照するときなど。

そういう時ってWebアプリケーションの本体を参照して紐付けてしまうと大変なことになってしまうので、モデルは別プロジェクト(クラスライブラリ)として独立させた方が便利なはずです。で、モデルを分離するならデータベースにアクセスする部分(DbContext)もクラスライブラリとして独立させてしまうべきだろうというのが動機です。

こんな感じ

Entity Framework 6のCode first前提です。

 構成

プロジェクトの構成はこのような感じで。

─┬─Application.Web
 │  …Webアプリケーション本体
 │
 ├─Application.DataAdapter 
 │  …データベースアクセスクラス
 │
 ├─Application.Entity
 │  …データベースのモデル
 │
 ├─Application.ConsoleClient
 │  …コンソールアプリケーション(管理プログラムなど)
 │
 └─Application.TestProgram
    …ちょっとしたテストを書くプロジェクト

注意点

特になし。プロジェクトの参照設定をきちんと設定できれば特に問題になる部分はないかと。

マイグレーションで困った!

で、まぁ順調に実装していたわけなんですが何だかマイグレーションの調子がよろしくない。

データベースの作成後、'xxxxx' コンテキストの背後にあるモデルが変更されました。
Code First Migrations を使用したデータベースの更新を検討してください
 (http://go.microsoft.com/fwlink/?LinkId=238269)。

というエラー。リンク先に書いてあるマイグレーションの手順は全部試してみたんだがなぁ・・・

解決

というわけで四苦八苦していたわけなんですが、なんともマヌケなことで、プロジェクトを分離したせいで マイグレーションツールがコンテキストのクラスを見失っていたのが問題みたいです。

blog.qaramell.com

データ ポイント - 複数モデルを対象とする EF6 Code First Migrations

このサイトに書いてあるとおりに、分離したコンテキストにそれぞれマイグレーションの設定をしてあげることで、うまくマイグレーションできるようになりましたとさ。トホホ。

おわりに

うむ。スッキリした。