質問: asp.net mvc エンティティモデルの定義 asp.net mvc コードファーストでの質問です。 エンティティモデルを定義する際、実際のテーブル構造と異なるモデルを 定義することは可能でしょうか? imports system.componentmodel.dataannotations public class sampledata public property height as long //実際に存在するカラム _ public property weight as long //実際に存在しないカラム(ただし「taiju」というカラムが存在する) public property bmi as long //実際に存在しないカラム end class カラム名が違う場合(上記weight)、column属性を指定すれば、指定カラムからデータを取得してくれます。 実際に存在しないカラム(上記bmi)を定義した場合、このままですとデータ取得時に 「system.data.sqlclient.sqlexception: 列名 'bmi' が無効です。」となります。 データ取得時にbmiを取得対象外としたいのですが、そのようなことは可能でしょうか? bmiをprivate変数としてgetter./setter用functionを定義すれば回避は可能なのですが、 スマートではないので、属性の指定等で対応できればと考えております。
回答: notmappedattribute かな。 あと、bmiは計算して表示するクラスでしょうから、setプロパティなしでgetプロパティだけを定義して、そのなかで身長、体重から計算して値を表示しておけばこの場合はdbからのデータ取得は行われないと思います。 http://blogonos.wordpress.com/2011/06/12/mvcconf-japan-%e3%81%b5%e3%82%8a%e3%81%8b%e3%81%88%e3%82%8a-1%ef%bc%9a-mvc3-codefirst-%e3%83%87%e3%83%a2/ ここで提示しているサンプルの中で年齢の項目はそんな感じで扱ってます。