我具有以下查詢(EF5,.NET4.5):定義使用內部EF枚舉查詢
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't指定的轉換ype到'MyApp.Domain.Models.MyEnum'類型無效。
但如果我改變枚舉定義
public enum MyEnum { ... }
一切工作正常。
是否有可能修復異常請不要將MyEnum更改爲int? (並且沒有額外的字節財產:))
數據庫中的相應列是什麼?它是CodeFirst嗎? – Pawel
這是DB-First。 MyEnumValue沒有相應的列。我從數據庫中獲取'p'對象(類型無關緊要)並構建一個新的Person對象(Person和MyEnum類型不包含在模型中)。 – Andrey
我不能重複這個。我做了'public enum TestEnum:byte {Test}; public class Test { public string Name {get;組; } public TestEnum EnumValue {get;組; { 使用} } 類節目 { 靜態無效的主要(字符串[]參數)(VAR CTX =新實體()){ 變種 C = ctx.Countries.Select(A =>新測試{ Name = a.CountryName,EnumValue = TestEnum.Test}); Console.Write(c!= null); } } }'。我錯過了什麼? – Pawel