我將很快開始在xamarin上工作,並將從android studio的java向c#轉移大量代碼。linq如何執行代碼以從數據源中檢索數據?
在java中我使用的是給定參數條件等的自定義類,將它們轉換爲SQL語句,然後加載結果在項目模型中的對象
什麼我不確定的是閹LINQ是更好的選擇來過濾這些數據。
例如會有什麼目前發生的是沿着這些線路
List<Customer> customers = (new CustomerDAO()).get_all()
或者,如果我有一個條件
List<Customer> customers = (new CustomerDAO()).get(new Condition(CustomerDAO.Code, equals, "code1")
現在讓我們假設我已轉班到C#和我想somethng做一些類似於第二種情況的事情。
所以我可能會寫的線沿線的東西:
var customers = from customer
in (new CustomerDAO()).get_all()
where customer.code.equals("code1")
select customer
我知道,當我真正嘗試訪問客戶查詢纔會執行,但如果我有多次訪問客戶(讓我們說我以後使用4個foreach循環)將調用get_all方法4次?或者是第一次執行時存儲的結果?
也只是保持get_all()方法並使用linq過濾結果,它更有效率(時間方面,因爲內存明智,它可能不是)?或使用我現有的設置,它實際上執行
Select * from Customers where code = 'code1'
並將結果加載到對象?提前任何幫助
感謝你能提供
編輯:是的,我知道有sqlite.net它幾乎做什麼我的daos做,但可能會更好,在某些時候,我可能會轉換所有我的對象來使用它,我只需要知道知道
你指的是哪一個LINQ? LINQ到對象? LINQ到EF? LINQ to SQL? –
是的,dao創建列表 –
Cruces