EntityFrameWork DataFirst和MVC

时间:2013-10-05 01:16:54

标签: c# asp.net-mvc entity-framework asp.net-mvc-4

我正在开发一个利用VS2012中的MVC4和EF Data First的项目。该表有一个主键,在字段名称中没有“id”,因此EF不理解它应该使用它作为主键。 EF生成代码后,我添加以下注释和使用语句。

using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;

public partial class Game
{
    [Key]
    [DatabaseGenerated(DatabaseGeneratedOption.None)]
    public int GameNumber { get; set; }

如果我从生成代码中建立我的模型,那么如果我更新数据库模型,我将丢弃自定义更改。如何保留自定义更改并更新数据库EF数据模型。

谢谢

1 个答案:

答案 0 :(得分:0)

使用MetadataTypeAttributeMSDN)在实体类的部分实现上定义元数据类,然后在该元数据类中修饰属性。

请注意,修饰的部分类实现应该存在于自动生成的文件以外的文件中,以便从DB继续刷新。

(问题:如果您的模型首先是数据库,为什么它不知道PK为Game表的内容?该属性最后是否Id无关紧要当它正在读取表模式以生成模型时...)

[MetadataType("GameMetadata")]
public partial class Game
{
    public class GameMetadata
    {
        [Key]
        [DatabaseGenerated(DatabaseGeneratedOption.None)]
        public int GameNumber; 
    }
}