カテゴリと製品の 2 つのエンティティが 1:n の関係にあります。
public class Category
{
public int CategoryID { get; set; }
public string CategoryName { get; set; }
public virtual ICollection<Product> Products { get; set; }
}
public class Product
{
public int ProductID { get; set; }
public string ProductName { get; set; }
public virtual Product { get; set; }
}
public class context : DbContext
{
public DbSet<Category> Categories { get; set; }
public DbSet<Product> Products { get; set; }
}
Eager ロードにより、あらゆるカテゴリの製品をロードすることが可能です。
context.Categories.Include(c=>c.Products).ToList()
Eager ロードと同じように、以下のクエリですべてのカテゴリの製品をロードするにはどうすればよいですか?
var q = @"
SELECT Categories.*
JOIN Products
ON Category.CategoryId = Products.CategoryId";
var c = context.Categories.SqlQuery(q).ToList();
単純なクエリのみです。いくつかのクエリを実行するには、SqlQuery を使用する必要があります。