2016-12-07 43 views
1
public VirtualNumber getVirtualNumber(string address) 
    { 
     using (PushMessageDBContext dbcontext = new PushMessageDBContext()) 
     { 
      var vNumber = from n in dbcontext.VirtualNumber 
          where n.Address == address 
          select new 
          { 
           VirtualNumber = n, 
           KeyWords = n.Keywords.OrderBy(k => k.KeywordName) 
          }; 
      // return vNumber; 
     } 
    } 

獲取數據,並得到錯誤我工作的LINQ到實體框架和我有問題,我的服務

嚴重性代碼說明項目文件的線路抑制狀態 錯誤CS0266無法隱式轉換類型「System.Linq的.IQueryable < KeyWords >>'到'SMPushMessage.Models.VirtualNumber'。一個顯式轉換存在(是否缺少強制轉換?)SMPushMessage d:\ ServerProjects \ SMPushMessage \ smpushmessage \ SMPushMessage \ SMPushMessage \ SERVICES \小鬼\ VirtualNumberService.cs 22主動

任何一個可以告訴我怎麼解決?

+0

您正在返回一個VirtualNumber,但您選擇了多個。 – grmbl

+0

你需要什麼? 1還是多個?你的問題並不清楚。 – grmbl

+0

我需要1個虛擬號碼,其關鍵字可能是多個 – user7498796

回答

1

您選擇匿名類型。如果你想返回一個VirtualNumber你應該先選擇它。

(from n in dbcontext.VirtualNumber 
where n.Address == address 
select n).FirstOrDefault(); 

如果您發佈VirtualNumber類,我可以幫助您進一步。

像grmbl指出,這將返回一個列表。如果你想要一個對象,你需要.FirstOrDefault()

編輯:假設VirtualNumber containts的Keywords

(from n in dbcontext.VirtualNumber 
where n.Address == address 
select new VirtualNumber 
{ 
    KeyWords = n.Keywords.OrderBy(k => k.KeywordName) 
}).FirstOrDefault(); 
-1

是一個清單,你的選擇是不正常的,我想應該是這樣的波紋管(我不知道VirtualNumber的屬性):

select new VirtualNumber 
          { 
           KeyWords = n.Keywords.OrderBy(k => k.KeywordName) 
          }.FirstOrDefault(); 
相關問題