我是MS的MVC4的新手,我已经获得了一个数据库,我必须构建一个CRUD前端。这些表都具有[TableID,TableName,EffectiveDate]形式的复合主键。我无法改变数据库设计。我使用数据库优先技术和用于C#工具的 EF 5.x DbContext生成器来创建模型,但生成的模型文件不包含复合键的注释。以下是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; }
}
}
我打赌键应该是这样的:
[key]
public int DeptID { get; set; }
[key]
public string DeptName { get; set; }
[key]
public System.DateTime EffDate { get; set; }
我是否甚至需要注释主键组件?如果是这样,我应该将注释添加到生成的模型文件中吗? (显然,重新生成文件会擦除我手工制作的任何更改)。有没有办法告诉MVC4 / Visual Studio生成带有正确注释的文件?
答案 0 :(得分:1)
您不必为数据库注释明显的东西:)您的代码不会使用特定于数据库的注释,所以我不担心这一点。
您可能希望使用[Required]
或其他对您的应用数据一致性有意义的注释来装饰您的模型。在这种情况下,您可以使用部分类(http://weblogs.asp.net/scottgu/archive/2010/01/15/asp-net-mvc-2-model-validation.aspx)或实现ViewModels
(您可以修改,而不必担心自动生成的类,您不应该真正修改)