Asp.net mvc 4 首先使用MVC4数据库,如何用复合主键注释模型?
我是微软MVC4的新手,我得到了一个数据库,我必须为它构建一个CRUD前端。这些表都具有[TableID、TableName、EffectiveDate]形式的复合主键。我不能改变数据库的设计。我使用Database first技术和EF 5.x DbContext generator for C#工具创建模型,但生成的模型文件不包含复合键的注释。下面是Department表的一个示例,主键为[DeptID,DeptName,EffDate]Asp.net mvc 4 首先使用MVC4数据库,如何用复合主键注释模型?,asp.net-mvc-4,composite-primary-key,database-first,Asp.net Mvc 4,Composite Primary Key,Database First,我是微软MVC4的新手,我得到了一个数据库,我必须为它构建一个CRUD前端。这些表都具有[TableID、TableName、EffectiveDate]形式的复合主键。我不能改变数据库的设计。我使用Database first技术和EF 5.x DbContext generator for C#工具创建模型,但生成的模型文件不包含复合键的注释。下面是Department表的一个示例,主键为[DeptID,DeptName,EffDate] //------------------------
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated from a template.
//
// Manual changes to this file may cause unexpected behavior in your application.
// Manual changes to this file will be overwritten if the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace BillableUnits4.Models
{
using System;
using System.Collections.Generic;
public partial class Department
{
public int DeptID { get; set; }
public string DeptName { get; set; }
public System.DateTime EffDate { get; set; }
public string Status { get; set; }
public string Fund { get; set; }
public string DeptNo { get; set; }
public string RevenueAccount { get; set; }
public string BalanceSheetAccount { get; set; }
}
}
我甚至需要注释主键组件吗?如果是这样,我应该将注释添加到生成的模型文件中吗?(很明显,重新生成文件会删除我手工所做的任何更改)。有没有办法告诉MVC4/VisualStudio生成带有正确注释的文件 您不必为数据库添加明显的注释:)您的代码不会使用特定于数据库的注释,所以我不担心这一点
您可能希望使用
[必需的]
或其他对应用程序数据一致性有意义的注释来装饰您的模型。在这种情况下,您可以使用分部类()或通过实现ViewModels
(您可以对其进行修改,而不必担心不应该真正修改的自动生成的类)谢谢您的快速回答。我将使用部分类解决方案进行装饰,因为它对于我的项目来说似乎是最合理的。脚手架系统不能为我解释这些。这是给你的吗?
[key]
public int DeptID { get; set; }
[key]
public string DeptName { get; set; }
[key]
public System.DateTime EffDate { get; set; }