[英]How do I make this JOIN?
我正在使用實體框架進行大學項目,並且正在做一些JOIN。 在加入這個不知道如何做的聯接之前,我一直表現不錯。 簡化我必須實現的功能:我有一個按鈕,當單擊它時,它必須顯示表中的所有信息,這就是為什么我需要進行JOIN的原因,並且為此創建了一個模型。
這是我的SQL數據庫的屏幕截圖: SQL數據庫
這是我需要使MetaEspecifica JOIN的代碼,其中外鍵來自AreaProcesso:
// 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);
}
如果您需要具有JSON的HTML頁面,請在查看頁面下使用此部分
@section Scripts {
var jsonData= @Html.Raw(Json.Encode(Model.YourDataCollection));
}
如果僅在瀏覽器中需要JSON數據,請更改控制器並返回Json,如下所示:
return Json(item, JsonRequestBehavior.AllowGet);
如果使用返回Json,請注意,您說的MVC不是視圖頁面,而只是數據序列化頁面
要查看Details.cshtml文件不需要模型,僅在設計頁面布局之后才在腳本部分中添加此腳本
@section Scripts {
$.ajax({
dataType: 'json',
url: '@Url.Action("Details")',
type: 'GET',
cache: false,
success: function(result) {
// use json result
}
});
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.