2010-04-22 7 views
0

J'ai ce code:Impossible de convertir implicitement le type ... à ... problème

 public static IEnumerable<dcCustomer> searchCustomer(string Companyname) 
    { 
     TestdbDataContext db = new TestdbDataContext(); 


     IEnumerable<dcCustomer> myCustomerList = (from Customer res 
                in db.Customers 
                where res.CompanyName == Companyname 
                select res); 

     return myCustomerList; 



    } 

Et tout ce que j'essaie i l'erreur persiste de conversion.

Error 1 Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<ConnectionWeb.Customer>' to 'System.Collections.Generic.IEnumerable<ConnectionWeb.DAL.dcCustomer>'. An explicit conversion exists (are you missing a cast?) \\srv01\home$\Z****\Visual Studio 2008\Projects\ConnectionWeb\ConnectionWeb\DAL\dcCustomer.cs 63 20 ConnectionWeb 

Je veux essayer obtenir myCustomerList de conserver les valeurs dans un recenseur et le retourner.

Répondre

2

le problème est que vous attendez de retourner un type DAl.dcCustome r, mais la déclaration LINQ retourne un type ConnectionWeb.Customer ...

Vous pouvez surmonter ce problème en changeant:

IEnumerable<dcCustomer> myCustomerList = 
(from Customer res 
    db.Customers 
    where res.CompanyName == Companyname 
    select res); 

à:

IEnumerable<dcCustomer> myCustomerList = (from Customer res 
    in db.Customers 
    where res.CompanyName == Companyname 
    select new dcCustomer(){ 
    //set properties here... 
    }); 

HTH

+0

Merci pour votre réponse! – Younes

1

Me regarde comme db.Customers contient des objets de type ConnectionWeb.Customer et non ConnectionWeb.DAL.dcCustomer comme vous le supposez.

Questions connexes