テーブルActivity(Id、Name)、テーブルCraft(Id、Name)、および2つのActivityCraft(Id、activity_ref、craft_ref、Paired)をリンクするテーブルを持つSQLiteデータベースを使用しています。
使用されるコンテキスト:
public DbSet<Activity> Activities { get; set; }
public DbSet<Craft> Crafts { get; set; }
public DbSet<ActivityCraft> ActivityCrafts { get; set; }
ActivityCraftのすべてのActivityエントリの特定のCraftの「Paired」値を見つけようとしています。
次のクエリは、ActivityCraftテーブルに記載されている特定のCraftのアクティビティのリストを返します
var query2 = from a in context.Activities
join ac in context.ActivityCrafts on a.Id equals ac.activity_ref
where ac.craft_ref == SelectedCraftId
select a;
ただし、必要なのはActivity.NameとActivityCraft.Pairedなので、次のことを試しましたが失敗しました
var query = from a in context.Activities
join ac in context.ActivityCrafts on a.Id equals ac.activity_ref
where ac.craft_ref == SelectedCraftId
select new
{
xN = a.Name,
xP = ac.Paired
};
選択句を変更するだけで、クエリの実行時に例外が発生するようです。
呼び出しのターゲットによって例外がスローされました