簡體   English   中英

有沒有辦法讓實體框架在搭建 CRUD 頁面時包含主鍵列?

[英]Is there a way to get Entity Framework to include primary key columns when scaffolding CRUD pages?

我有一個帶有 EF 6 的 .net 核心 3.1 MVC 應用程序。我讓它使用基於已經生成的模型的“新支架項目”功能創建 CRUD 頁面(我正在做“數據庫優先”)。 它生成的 cshtml 文件從不包含主鍵列,就像沒有為它們制作的文本框和標簽一樣。 這些不是身份列。 盡管對於確實具有標識列的表,如果將其包含在除 Create 之外的 CRUD 頁面中會很好。

Model:

namespace ABCDashboard.Models
{
    public partial class TableMap
    {           
        public string EventOID { get; set; }           
        public string FormOID { get; set; }            
        public string ItemGroupOID { get; set; }
        public string TableSchema { get; set; }
        public string TableName { get; set; }
        public int? FormOrder { get; set; }
        public int? ItemGroupOrder { get; set; }
    }
}

用於創建、詳細信息、刪除、編輯和索引的 .cshtml 文件省略了 EventOID、FormOID 和 ItemGroupOID。

解決方案是添加 DatabaseGenerated 注釋:

using System.ComponentModel.DataAnnotations.Schema;

namespace ABCDashboard.Models
{
    public partial class TableMap
    {
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public string StudyEventOID { get; set; }
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public string FormOID { get; set; }
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public string ItemGroupOID { get; set; }
        public string TableSchema { get; set; }
        public string TableName { get; set; }
        public int? FormOrder { get; set; }
        public int? ItemGroupOrder { get; set; }
    }
}

這適用於我的具有非身份 PK 的表的創建、索引和編輯頁面。 尚不確定如何讓它在頁面上也放置作為身份列的 ID(除了創建),但這始終只是一列,因此手動添加它更容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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