まもなくxamarinの作業を開始し、アンドロイドスタジオのjavaからC#に多くのコードを転送します。 Javaで linqは実際にデータソースからデータを取得するコードをどのように実行しますか?
は、私は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'
結果をオブジェクトにロードしますか?あなたは
編集を提供することができる任意の助けを事前に
ありがとう:はい、私はかなり私のDAOSが何を行いますが、おそらくより良い、といくつかの点で私はおそらくすべての私を変換しますどのsqlite.netがある知っていますオブジェクトは、それを使用するために、私はちょうど私が顧客に複数のアクセスを持っている場合
どのLINQを参照していますか?オブジェクトへのLINQ? LINQ to EF? LINQ to SQL? –
はい、daoがリストを作成します –
Cruces