2012-03-12 8 views
0

私は最初にEF 4.3コードを使用してクリーンなモデルを作成しようとしています。列挙型はEF 5.0まで完全にサポートされていないことが分かっています。エンティティフレームワークのコードファースト - データベースフィールドをモデルから隠すことはできますか?

public class Vehicle { 
    public VehicleId int { get;set; } 
    public VehicleType VehicleType 
    { 
     get { return (VehicleType)VehicleTypeId; } 
    } 
    internal VehicleTypeId int { get; set; } 
} 

は、だから私は、データベースにvehicleTypeIdを保存したいが、ちょうどモデルで列挙型を示し

はこれです:私はこのような何かをしようとしてきたこの問題を回避するには

可能?

おかげ

+0

試しましたか? –

+0

うん、それはうまくいきませんでした。 vehicleTypeIdはdbで作成されませんでした。 – Mantisimo

+0

あなたのコンテキストにプロパティが表示されていますか? –

答えて

0

あなたの財産は、コンテキストに表示されていない場合、それはマッピングされません。 hereと記載されたトリックを使用して、内部プロパティをマッピング可能にすることができます。

+0

ありがとう、ちょっとしたハックだけど、基本的な内部プロパティを追加の静的メソッドで再公開するだけです。これが改善であれば、私は/ semiをきれいなモデルに保つためにenumがあるたびにこれをしなければならず、本当にきれいではありません。 – Mantisimo

+0

「InternalsVisibleTo」を使用し、DALアセンブリにエンティティアセンブリの内部プロパティへのアクセスを許可することを除いて、EFコードを最初に取得するのが最もクリーンな方法です。 –

関連する問題