2013-04-29 28 views
1

,我發現了錯誤轉換LINQ的數據查詢到對象類型

「無法投 類型的對象System.Data.Linq.DataQuery`1 [StockManagement.Models.Client]'鍵入 'StockManagement.Models.Client'。「

public class Client 
     { 
      public int ClientID { get; set; } 
      public string Name { get; set; } 
      public string Address { get; set; } 
      public string Mobile { get; set; } 
      public string Telephone { get; set; } 
      public string Fax { get; set; } 
      public string Company { get; set; } 
     } 


private StockDataClassesDataContext dc; 
public Client GetClient(int clientID) 
     { 
      dc = new StockDataClassesDataContext(ConString.DBConnection); 
      Client query = (Client)(from tbclient in dc.tblClients 
            where tbclient.ClientID == clientID 
            select new Client 
            { 
             Address = tbclient.Address, 
             ClientID = tbclient.ClientID, 
             Company = tbclient.Company, 
             Fax = tbclient.Fax, 
             Mobile = tbclient.Mobile, 
             Name = tbclient.Name, 
             Telephone = tbclient.Telephone 
            }); 
      return query; 
     } 

回答

8

您的查詢返回的IEnumerable<Client>,你需要或者FirstOrDefaultFirstSingleOrDefault ..看MSDN上最適合你的人。

Client query = (from tbclient in dc.tblClients 
            where tbclient.ClientID == clientID 
            select new Client 
            { 
             Address = tbclient.Address, 
             ClientID = tbclient.ClientID, 
             Company = tbclient.Company, 
             Fax = tbclient.Fax, 
             Mobile = tbclient.Mobile, 
             Name = tbclient.Name, 
             Telephone = tbclient.Telephone 
            }).FirstOrDefault()