J'ai la requête linq2sql suivante, et je mets le résultat à un POCO. Une de mes propriétés POCO est une énumération.Comment Linq2Sql peut-il créer une énumération dans la clause select?
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
};
}
Lorsque j'exécute la requête, j'obtiens l'erreur suivante.
System.NotSupportedException: Method 'Models.AchievementType
ToEnum[AchievementType](int)' has no supported translation to SQL.
hmm. y at-il un moyen que je peux être assez difficile pour que le résultat int soit converti à mon énum personnalisé?
Wow - génial! J'ai supprimé ma classe L2S AchievementType et renommé le champ AchievementTypeId en AchivementType. Définissez ensuite le type de propriété sur ma structure enum FQDN. MS testé -> travaillé! impressionnant! non seulement cela fonctionne, mais mon concepteur est plus propre avec les classes de recherche maintenant supprimées! sauce extraordinnaire! –