我有以下枚举:
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;
这有几个问题:
- 我需要使用完全限定的名称(枚举的名称必须与我收集的名称相同)。
- 我需要到处投。
- 我将得到一个循环引用,因为
Models
命名空间引用Common
并且Common
现在需要引用Models
才能进行转换。
这是一个简化的解释。我无法更改引用或生成器模板,因为这将在一个相当大的项目中进行大量代码更改。
我猜它的生成模板搞砸了。有没有办法解决这个问题?
编辑
EntityObject 模板生成器生成的 VehicleType 类型的字段变为:
private VehicleType _VehicleType;
其中 VehicleType 是 Models.VehicleType