0

我有以下查询(EF5,.NET4.5):

from p in repository
select new Person() {
    Name = p.Name, 
    Birthday = p.Birthday,
    MyEnumValue = MyEnum.Value1
};

其中MyEnumValue枚举定义如下:

public enum MyEnum : byte
{
    Value1 = 1,
    Value2 = 2
}

在运行时此代码导致异常:

从具体化的“System.Byte”类型到“MyApp.Domain.Models.MyEnum”类型的指定转换无效。

但是如果我将枚举定义更改为

public enum MyEnum { ... }

一切正常。

是否可以修复异常不要将 MyEnum 更改为 int?(并且没有额外的字节属性:))

4

2 回答 2

0

这是 MySQL .NET 连接器错误。所以只有一个选择 - 做出解决方法并等待下一个版本。

于 2012-11-01T06:22:22.770 回答
-2

尝试像这样投射:

from p in repository
select new Person() {
    Name = p.Name, 
    Birthday = p.Birthday,
    MyEnumValue  = (MyEnum) Enum.Parse(typeof(MyEnum), MyEnum.Value1, true)
};

如果“Person”的“MyEnumValue”字段是字节,那么转换为字节......

于 2012-10-31T10:21:03.510 回答