SQL では、 Organization(id, name)、Category(id, name)、Catalog(org_id, cat_id) の3 つのテーブルがあります - Organizations と Categories の間のマッピング テーブル。私のために作成されたADO.NET DbContext Generator 2つのクラス:
public partial class Organization
{
public Organization()
{
this.Category = new HashSet<Category>();
}
public int id { get; set; }
public string name { get; set; }
public virtual ICollection<Category> Category { get; set; }
}
public partial class Category
{
public Category()
{
this.Organization = new HashSet<Organization>();
}
public int id { get; set; }
public string name { get; set; }
public virtual ICollection<Organization> Organization { get; set; }
}
LINQ を使用して cat_id = 1 にマップされたすべての組織を選択するにはどうすればよいですか? t-sqlを使用して行うように:
SELECT *
FROM Organization o
INNER JOIN Catalog ct ON o.id = ct.org_id
INNER JOIN Category cg ON ct.cat_id = cg.id
WHERE cg.id = 1
私は試した
var model = _db.Category
.Where(c => c.id == 1)
.Select(c => c.Organization);
しかし、ビューで定義された型に問題があります
@model IEnumerable<Project1.Models.Organization>