Asp.net mvc 4 现有数据库标识列MVC4

Asp.net mvc 4 现有数据库标识列MVC4,asp.net-mvc-4,Asp.net Mvc 4,我正在使用现有数据库创建项目报告系统。我希望主键,即项目表的项目id值能够自动创建,并且不会设置新值,因为我必须输入id,但我不希望用户这样做。有人能帮我解决这个问题吗 帕特里克 控制器 ` // //获取:/Project/Create public ActionResult Create() { ViewBag.Status = new SelectList(db.pjt_Statuses, "pjt_Status_ID", "StatusNam

我正在使用现有数据库创建项目报告系统。我希望主键,即项目表的项目id值能够自动创建,并且不会设置新值,因为我必须输入id,但我不希望用户这样做。有人能帮我解决这个问题吗

帕特里克

控制器 ` // //获取:/Project/Create

    public ActionResult Create()
    {
        ViewBag.Status = new SelectList(db.pjt_Statuses, "pjt_Status_ID", "StatusName");
        ViewBag.SubCategoryID = new SelectList(db.pjt_SubCategories, "pjt_SubCat_ID", "SubCatName");
        return View();
    }

    //
    // POST: /Project/Create

    [HttpPost]
    public ActionResult Create(pjt_Projects pjt_projects)
    {
        if (ModelState.IsValid)
        {
            pjt_projects.CreationDate = DateTime.Now;
            db.pjt_Projects.Add(pjt_projects);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        ViewBag.Status = new SelectList(db.pjt_Statuses, "pjt_Status_ID", "StatusName", pjt_projects.Status);
        ViewBag.SubCategoryID = new SelectList(db.pjt_SubCategories, "pjt_SubCat_ID", "SubCatName", pjt_projects.SubCategoryID);
        return View(pjt_projects);
    }`
数据库表脚本

`CREATE TABLE [dbo].[pjt_Projects](
[Pjt_Id] [int] IDENTITY(1,1) NOT NULL,
[ProjectName] [nchar](100) NULL,
[Status] [int] NULL,
[Start_Date] [date] NULL,
[Estimated_End_Date] [date] NULL,
[Documents] [nvarchar](max) NULL,
[Notes] [nvarchar](max) NULL,
[Budget] [smallmoney] NULL,
[Current_Spending] [smallmoney] NULL,
[ProjectOwner] [nvarchar](50) NULL,
[Active] [bit] NULL,
[Actual_End_date] [date] NULL,
[CreationDate] [date] NULL,
[CreatedByEmpNo] [nchar](10) NULL,
[UpdateDate] [date] NULL,
[UpdatedByEmpNo] [nchar](10) NULL,
[SubCategoryID] [int] NULL,`


**Generate Context Db Code**
    public int Pjt_Id { get; set; }
    public string ProjectName { get; set; }
    public Nullable<int> Status { get; set; }
    public Nullable<System.DateTime> Start_Date { get; set; }
    public Nullable<System.DateTime> Estimated_End_Date { get; set; }
    public string Documents { get; set; }
    public string Notes { get; set; }
    public Nullable<decimal> Budget { get; set; }
    public Nullable<decimal> Current_Spending { get; set; }
    public string ProjectOwner { get; set; }
    public Nullable<bool> Active { get; set; }
    public Nullable<System.DateTime> Actual_End_date { get; set; }
    public Nullable<System.DateTime> CreationDate { get; set; }
    public string CreatedByEmpNo { get; set; }
    public Nullable<System.DateTime> UpdateDate { get; set; }
    public string UpdatedByEmpNo { get; set; }
    public Nullable<int> SubCategoryID { get; set; }    
`CREATE TABLE[dbo].[pjt_Projects](
[Pjt_Id][int]标识(1,1)不为空,
[ProjectName][nchar](100)空,
[状态][int]NULL,
[开始日期][日期]空,
[预计结束日期][日期]空,
[文档][nvarchar](最大值)空,
[注][nvarchar](最大值)空,
[Budget][smallmoney]NULL,
[当前支出][smallmoney]空,
[ProjectOwner][nvarchar](50)空,
[活动][位]空,
[实际结束日期][日期]空,
[CreationDate][date]空,
[CreatedByEmpNo][nchar](10)空,
[UpdateDate][date]空,
[UpdatedByEmpNo][nchar](10)空,
[子类别ID][int]空`
**生成上下文数据库代码**
公共int Pjt_Id{get;set;}
公共字符串ProjectName{get;set;}
公共可空状态{get;set;}
公共可为空的开始日期{get;set;}
公共可为空的估计\u结束\u日期{get;set;}
公共字符串文档{get;set;}
公共字符串注释{get;set;}
可为空的公共预算{get;set;}
公共可为空的当前开销{get;set;}
公共字符串项目所有者{get;set;}
公共可空活动{get;set;}
公共可空的实际结束日期{get;set;}
公共可空CreationDate{get;set;}
公共字符串CreatedByEmpNo{get;set;}
公共可为Null的UpdateDate{get;set;}
公共字符串UpdatedByEmpNo{get;set;}
公共可为空的子类别ID{get;set;}

只需将ID字段从Razor视图中排除即可。(除非您使用的是
EditorForModel
,否则不言自明,在这种情况下,您需要修改ID字段的
显示注释,以便Razor引擎知道将其从视图中排除。)


一旦被排除,它的值将不会被发回服务器。这样,当在MVC控制器中创建时,它将获得默认值;数据库将自动生成新ID。

需要一些示例代码,否则我们不知道您真正想要的是什么。@EkoostikMartin您想让我展示什么…让我们看看您现在拥有什么ar,这将是一个很好的起点。@Dimitar Dimitrov数据库脚本、控制器和数据库生成类代码已启动。还有其他问题吗?@PatrickMelia,这是一个完全独立的问题。发布它,然后回答;注释不是放置它的位置。