2014-01-14 102 views
0

我試圖從AdventureWork2012數據庫中使用VS 2012進行查詢,這裏是我的代碼,我從這裏得到了一個錯誤。我不知道如何解決它,每個人都可以告訴我如何解決這個問題。非常感謝!無法將類型'System.Collections.Generic.Lis <AnonymousType#1>'隱式轉換爲'System.Collections.Generic.List <AdventureCycle.Models.Product>'

Model.Name = (from ob in db.Products join od in db.ProductSubcategories on ob.ProductSubcategoryID equals od.ProductSubcategoryID 
          where ob.Name.Contains("Bike") 
          select new { ob.Name}).ToList(); 
+1

什麼類型是'Model.Name'? –

+0

它的**列表 **分類自拍模型名稱 –

回答

1

您選擇

select new { ob.Name} 

導致匿名類型有單Name財產。因爲它似乎是你的Model.Name屬性的類型是List<Product>,你可能想選擇整個產品,採用

select ob 

代替。也就是說,擁有一個名爲Name的東西真的很奇怪,並且它是一個List<Product>。如果它應該是產品名稱的列表,一個更好的定義是

public List<string> ProductNames {get; set;} 

和正確的查詢是:

Model.ProductNames = (from ob in db.Products join od in db.ProductSubcategories on ob.ProductSubcategoryID equals od.ProductSubcategoryID 
         where ob.Name.Contains("Bike") 
         select ob.Name).ToList(); 

或者,如果你確實需要一個名字,比應該是一個字符串

public string Name {get; set;} 

和正確的查詢可以是:

Model.Name = (from ob in db.Products join od in db.ProductSubcategories on ob.ProductSubcategoryID equals od.ProductSubcategoryID 
         where ob.Name.Contains("Bike") 
         select ob.Name).FirstOrDefault(); 
+0

我試過了,它工作:) –

相關問題