久しぶりにやったら、どうやってたのか思い出せないのでメモ。
Entity FrameworkのEntity Data Modelを新規で追加する
使いたいデータベースを元にData Modelを作る。
EDMXファイルを開いて、プロパティ「スキーマ」の「新しいオブジェクトの複数化」を有効(True)にする
好みに合わせてやりましょう。上記の方法で作るとデフォルトではFalseです。
でも、複数化したほうが.NETぽいし、気持ち悪くなくてよくね?
単数形.cs
db.TableName.Select(x => x.ID);
複数形.cs
db.TableNames.Select(x => x.ID);
DBのテーブルをすべてUpperCamelCaseになおす
なってないとC#のコードが気持ち悪いことになるので全部を手動で修正。
snake_case.cs
db.table_name.Select(x => x.full_name);
CamelCase.cs
db.TableNames.Select(x => x.FullName);
このとき、エンティティセット名が複数形のUpperCamelCaseになってるかをチェックする
DBから生成した場合、自動で変わらないことがあるのでここも手動でやります。
エンティティセット名がC#からDBを参照するときの名前になる
ダイアグラムにテーブル名として表示されている名前ではないので注意。
ダイアグラムにテーブル名として表示されている名前は、テーブルのクラスを表す。
これで、MySQL WorkBenchとかでDB設計しても、気持ちよくLINQが書けそうな気がする。