使用EntityObject Generator模板引用外部枚举类型

时间:2013-02-01 00:33:02

标签: c# entity-framework enums ef-database-first entityobject

我有以下枚举:

namespace Common
{
    public enum VehicleType
    {
        Car=10,
        Bike=20
    }
}

我在EF设计器中创建了一个引用枚举类型,名称为VehicleType,引用了Common.VehicleType。 edmx位于Models命名空间中,因此我最终得到两个不同的枚举:

Common.VehicleType
Models.VehicleType

要在实体对象实例上设置枚举,我需要将其强制转换:

Vehicle vehicle = new Vehicle();
vehicle.VehicleType = (Models.VehicleType)Common.VehicleType.Bike;

这有几个问题:

  1. 我需要使用完全限定名称(枚举的名称必须与我收集的名称相同)。
  2. 我需要到处投射。
  3. 我会得到一个循环引用,因为Models命名空间引用CommonCommon现在需要引用Models才能进行投射。
  4. 这是一个简化的解释。我无法更改引用或生成器模板,因为这相当于一个相当大的项目中的大量代码更改。

    我猜它的生成模板搞砸了。有没有办法解决这个问题?

    修改

    EntityObject模板生成器生成的VehicleType类型的字段变为:

    private VehicleType _VehicleType;
    

    其中VehicleType是Models.VehicleType

0 个答案:

没有答案