SQLite でいくつかの LINQ ステートメントを実行しようとしていますが、いくつかの問題が発生しています。
まず、結合しようとしています。これが私のコードです:
var query = from client in db.Table<Client>()
join address in db.Table<AddressDetail>()
on client.AddressID equals address.AddressID
select new
{
ClientID = client.ClientID,
AddressID = address.AddressID,
Name = address.Name,
LastSaveDate = client.LastSaveDate
};
これは失敗し、次のようなエラー メッセージが表示されます: 結合はサポートされていません。
素晴らしい!!
これを回避するために、コードを 2 つのクエリに分割しました。更新されたコードは次のとおりです。
var query = db.Table<Client>();
foreach (var client in query)
{
var subQuery = from address in db.Table<AddressDetail>()
where address.AddressID == client.AddressID
select new
{
ClientID = client.ClientID,
AddressID = address.AddressID,
Name = address.Name,
LastSaveDate = client.LastSaveDate
};
foreach (var fullClient in subQuery)
{
//Do something here
}
}
サブクエリの結果をループしようとするまで、これはすべてうまくいくようです。次のエラーが表示されます: このオブジェクトにパラメーターなしのコンストラクターが定義されていません。
これは、SQLite で結合と匿名型を使用できないということですか?
どうすればこれを回避できるかについてのアイデア。
私は SQLite、.Net 4.5 を使用しており、Windows 8 ストア アプリを作成しています。