public class Customer
{
private int customerId;
private string contactTitle;
private string country;
private string contactName;
}
var customer = db.From<Customer>().Where(c => c.CustomerId == Customer.CustomerId).Select();
Customer cc = (Customer)customer;
// it is error i can't convert to object of class Customer
回答
首先的反對,VAR是不是一個類型,它更多的是強類型的佔位符爲你把它的第一件事類型。在這種情況下,IEnumerable的客戶或IQueryable。
你可以通過改變解決這個問題:
var customer = db.From().Where(c => c.CustomerId == Customer.CustomerId).Select();
它會返回一個枚舉到:
var customer = db.From().Where(c => c.CustomerId == Customer.CustomerId).SingleOrDefault();
然後VAR持有的客戶對象。
「,它會返回一個enumerable到你所寫的」The Select「,甚至不會編譯,所以它不會返回任何*。 – HimBromBeere
我怎樣才能轉換變種結果的ObservableCollection
'Select()'處理結果集中的每個項目。因此,您的代碼將從數據庫中獲取每個客戶,並從中創建一個新的匿名對象。因此返回一組匿名對象。如果你只需要一個,使用'SingleOrDefault'或'FirstOrDefault'。正如上面提出的幾個答案。 – Shelby115
,因爲你選擇customer
收集
可以使用First()對於選擇的第一個客戶,根據情況
var customer = db.From<Customer>().Where(c => c.CustomerId == Customer.CustomerId).First();
如果你需要一個對象,你應該使用FirstOrDefault()
後Where()
:
Customer customer = db.From<Customer>()
.Where(c => c.CustomerId == Customer.CustomerId)
.FirstOrDefault();
它將確保如果沒有記錄返回您的代碼將不會拋出拋出異常。
如果你想檢查你的錯誤,你會發現它可能是這樣描述的:「無法從IEnumerable轉換成Costumer」。
這是因爲您的LinQ中的Where
會返回一個Costumers集合,即使它只有一個Costumer它仍然是一個集合。
而不是Where
嘗試First
或Single
,或者如果有可能的是,數據庫將隨後又從返回null使用FirstOrDefault
或SingleOrDefault
var customer = db.From<Customer>().First(c => c.CustomerId == Customer.CustomerId);
var customer = db.From<Customer>().Single(c => c.CustomerId == Customer.CustomerId);
var customer = db.From<Customer>().SingleOrDefault(c => c.CustomerId == Customer.CustomerId);
var customer = db.From<Customer>().FirstOrDefault(c => c.CustomerId == Customer.CustomerId);
通過使用你不需要投它其中一個選項var給客戶。
var關鍵字
此關鍵字隱含斷定哪些變量的類型是基於它的價值。這就是爲什麼像var test = null;
這樣的東西不能編譯,因爲它不知道null應該是什麼類型(因爲任何對象都可以爲null)。有關var關鍵字的更多信息。
選擇客戶
顯然,根據你的代碼,你要選擇與給定的客戶編號的客戶。要做到這一點,
var customer = db.From<Customer>().SingleOrDefault(c => c.CustomerId == Customer.CustomerId);
從技術上講,FirstOrDefault
也將工作。所不同的是主要是 symantical,使用FirstOrDefault
時,你想要的第一個很多。如果您希望得到一個且只有一個結果,請使用SingleOrDefault
。
- 1. 如何從var到對象的類型轉換
- 2. 如何將var數據轉換爲int類型?
- 3. 如何做類型轉換?
- 4. 如何轉換anynoymous類型?
- 5. 轉換從VAR到VAR和
- 6. EF4我如何轉換匿名類型的強類型的LINQ
- 7. 將var轉換爲ClassTracker的類類型IQueryable
- 8. 如何轉換類的類型?
- 9. PHP:爲什麼使用!! $ var而不是(boolean)$ var進行類型轉換?
- 10. 我如何能INT類型轉換爲時間型
- 11. 類型轉換類
- 12. 轉換類型
- 13. 類型轉換
- 14. 類型轉換++
- 15. 轉換類型
- 16. 類型轉換++
- 17. 類型轉換()
- 18. 轉換類型
- 19. 轉換類型
- 20. 類型轉換
- 21. Neo4j:spring-data-neo4j,如何將結果轉換爲我的類型類?
- 22. 如何泛型類型強制轉換成非泛型類型
- 23. 在Visual Studio中將「var」轉換爲顯式類型?
- 24. javascript var分配轉換爲目標類型
- 25. C#轉換LINQ VAR結果實際類型
- 26. 將var char值'10,11,12,60,61,111,143,144'轉換爲數據類型int
- 27. 轉換VAR生成查詢到強類型數據
- 28. 我該如何轉換我的數據類型?
- 29. 如何將var轉換爲DataTable?
- 30. 如何從VAR轉換爲字符串
您應該包含錯誤消息。 –
假設您使用的是Visual Studio,您可以將鼠標懸停在客戶上並查看「客戶」類型。 – mason
您應該始終發佈完整且準確的錯誤消息。在這種情況下,錯誤消息將聲明你正在嘗試從**轉換**,這對於這個問題很重要。 –