私は次の列挙型を持っています:
namespace Common
{
public enum VehicleType
{
Car=10,
Bike=20
}
}
VehicleType
Common.VehicleType を参照する名前で、EF デザイナーで参照列挙型を作成しました。edmx はModels
名前空間にあるため、最終的に 2 つの異なる列挙型になります。
Common.VehicleType
Models.VehicleType
エンティティ オブジェクト インスタンスに列挙型を設定するには、キャストする必要があります。
Vehicle vehicle = new Vehicle();
vehicle.VehicleType = (Models.VehicleType)Common.VehicleType.Bike;
これにはいくつかの問題があります。
- 完全修飾名を使用する必要があります (列挙型の名前は、収集したものと同じでなければなりません)。
- どこにでもキャストする必要があります。
Models
名前空間が参照Common
しているため、循環参照を取得し、キャストするCommon
には参照する必要があります。Models
これは簡単な説明です。リファレンスやジェネレーター テンプレートを変更することはできません。これは、非常に大きなプロジェクトでコードを大幅に変更することになるためです。
生成テンプレートが問題を引き起こしていると思います。これを回避する方法はありますか?
編集
EntityObject テンプレート ジェネレーターによって生成されたタイプ VehicleType のフィールドは次のようになります。
private VehicleType _VehicleType;
ここで、VehicleType は Models.VehicleType です