我有以下查询(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? (并且没有额外的字节属性:))
答案 0 :(得分:0)
这是MySQL .NET Connector的错误。所以只有一个选项 - 制定解决方法并等待下一个版本。
答案 1 :(得分:-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”字段是字节,那么转换为byte ...