j'ai créé une méthode dans mon modèle:Impossible de convertir implicitement le type de dynamique LINQ to SQL
public IList<Test> GetData(int IDCus){
var list = from j in Context.Test
join y in this.Context.Test1 on j.ID equals y.ID
where j.ID == IDCus
select new {
Tnum = j.Ynum,
Level = y.Level
};
return list.ToList();
}
Quand je viens en utilisant select
sans new
, il fonctionne normalement. Mais quand j'ai essayé d'utiliser select new
dans ma requête, l'erreur: Impossible de convertir implicitement le type System.Collections.Generic.List<AnonymousType#1>
en System.Collections.Generic.IList<ITEX.Models.Test>
.
Des indices? Merci.
erreur se parle, vous revenez IList, mais lorsque vous faites du nouveau avec select, vous créez un type anonyme qui n'est pas "Test" –
Flowerking
Merci. mais pourriez-vous me dire, pourquoi avez-vous dit, je crée un type anonyme avec n'est pas Test? Parce que, j.Ynum est le champ que je prends de la table "Test" et y.Level prend de la table Test1. – Nothing
Lorsque vous utilisez "select" comme ci-dessus, vous projetez votre résultat dans un nouveau "Type" qui a été créé de façon anonyme par le compilateur (fonctionnalité de C# 3.0). Pour spécifier le Type à ce que vous voulez retourner, vous devez utiliser - select new Test() {Tnum = j.Ynum, Niveau = y.Level}, cela vous assurera que vous retournez l'objet Test au lieu de créer un nouvel anonyme type. – Flowerking