簡體   English   中英

我該如何加入?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM