0

我有以下枚举:

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命名空间引用Common并且Common现在需要引用Models才能进行转换。

这是一个简化的解释。我无法更改引用或生成器模板,因为这将在一个相当大的项目中进行大量代码更改。

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

编辑

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

private VehicleType _VehicleType;

其中 VehicleType 是 Models.VehicleType

4

0 回答 0