私はエンティティフレームワークを使って大学のプロジェクトをやっています。私はいくつかのJOINをやっています。私はこのジョインに私がやる方法がわからなくなるまでうまくやっていました。 実装が必要な機能の簡略化:ボタンがあり、クリックするとテーブルのすべての情報が表示される必要があるため、JOINを作成する必要があります。この目的のためにモデルを作成しました。このJOINを作成するにはどうすればよいですか?
これは私のSQLデータベースのスクリーンショットです: SQL Database
そして、これは私が 外部キーがAreaProcessoからですMetaEspecifica JOINを作るために必要なコードです:あなた場合
// GET: AreaProcesso/Details/5
public ActionResult Details(int? id)
{
if (id == null)
{
return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
}
var item = (from ap in db.AreaProcesso
join mg in db.MetaGenerica on ap.IdAreaProcesso equals mg.IdMetaGenerica
join model in db.Modelo on ap.IdAreaProcesso equals model.IdModelo
from nc in db.NivelCapacidade
from c in db.Categoria
from me in db.MetaEspecifica
where ap.IdAreaProcesso == id.Value
select new AreaProcessoModelView()
{
SiglaMetaGenerica = mg.Sigla,
NomeMetaGenerica = mg.Nome,
DescricaoMetaGenerica = mg.Descricao,
Sigla = ap.Sigla,
Nome = ap.Nome,
Descricao = ap.Descricao,
SiglaModelo = model.Sigla,
NomeModelo = model.Nome,
DescricaoModelo = model.Descricao,
SiglaNivelCapacidade = nc.Sigla,
NomeNivelCapacidade = nc.Nome,
DescricaoNivelCapacidade = nc.Descricao,
NomeCategoria = c.Nome
}).FirstOrDefault();
if (item == null)
{
return HttpNotFound(); // Or a return a view with message "item not found"
}
return View(item);
}
手動のジョインをしないで、ナビゲーションプロパティを使用しているはずです。 –
だから問題は何ですか?何が助けを必要としますか? – CodingYoshi
私はこれをやってみました: "me.IdAreaProcessoはap.IdAreaProcessoとdb.AreaProcessoで結合するap"ですが、すでに宣言されているp変数です! –