次の linq2sql クエリがあり、結果を POCO に設定しています。私の POCO プロパティの 1 つは列挙型です。
public IQueryable<Models.Achievement> GetAchievements()
{
return from a in _sqlDatabase.Achievements
select new Models.Achievement
{
// Note: ToEnum is an extension method that converts an int -> the enum.
AchievementType = a.AchievementTypeId.ToEnum<Models.AchievementType>(),
DateTimeCreated = a.DateTimeCreated,
UserId = a.UserId
};
}
クエリを実行すると、次のエラーが発生します。
System.NotSupportedException: Method 'Models.AchievementType
ToEnum[AchievementType](int)' has no supported translation to SQL.
うーん。結果のintをカスタム列挙型に変換するのに十分なほどトリッキーな方法はありますか?