J'utilise LINQ et j'ai du mal à comprendre comment je peux faire fonctionner de nouvelles classes de "modèle de domaine" dans LINQ lors d'une requête entre tables. J'utilise Linq to SQL, et C# dans .NET 3.5.Implémentation de IEnumerable
Supposons que je veux une classe Client étendue:
public class ExtendedClient
{
public int ID { get; set; }
public string Name { get; set; }
public string strVal { get; set; }
}
et dans ma couche de données, je veux remplir ce de deux tables (cc est mon DataContext):
public ExtendedClient getExtendedClient(int clientID)
{
var c = dc.GetTable<tClient>();
var cs = dc.GetTable<tClientSetting>();
var q = from client in c
join setting in cs
on client.ClientID equals setting.ClientID
where client.ClientID == clientID
select new ExtendedClient { client, setting.strValue };
return q;
}
Je suis en train pour renvoyer la ligne dans la table tClient plus une colonne supplémentaire dans tClientSetting.
Les erreurs gênantes que je reçois sont: Impossible d'initialiser le type « ExtendedClient » avec un initialiseur de collection, car il ne met pas en œuvre « System.Collections.IEnumerable » et Impossible de convertir implicitement le type « System.Linq.IQueryable » à ' ExtendedClient '. Une conversion explicite existe (manque-t-il un cast?)
Je réalise que c'est une erreur de base, mais je ne peux pas déterminer comment MEILLEUR pour implémenter le IEnumerable parce que je ne peux pas trouver un exemple.
Dois-je faire à chaque fois Je veux un objet spécialisé? Merci d'avance.