EF Code First教程-02.1 Fluent API约定配置

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Entity;
using System.Data.Entity.ModelConfiguration;
using System.ComponentModel.DataAnnotations.Schema;

namespace GTBlog.Model
{
    public class EfDbContext:DbContext
    {
        public EfDbContext()
            : base("connStr")
        {
            
        }

        //增加表后在程序包管理控制台中执行下面的命令
        //Add-Migration AddBlogUrl    //新增一个数据库迁移版本   AddBlogUrl是要新增版本名称,这个名称必须是唯一的,不能重复
        //Update-Database  //更新数据库

        public DbSet<User> Users { get; set; }
        public DbSet<Category> Categories { get; set; }
        public DbSet<Article> Articles { get; set; }
        public DbSet<DBInfo> DBInfos { get; set; }
        public DbSet<Menu> Menus { get; set; }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder
                .Configurations
                .Add(new UserConfiguration())
                .Add(new CategoryConfiguration())
                .Add(new ArticleConfiguration())
                .Add(new DBInfoConfiguration())
                .Add(new MenuConfiguration());
            base.OnModelCreating(modelBuilder);
        }

        #region UserConfiguration

        public class UserConfiguration : EntityTypeConfiguration<User>
        {
            public UserConfiguration()
            {
                HasKey(c => c.Id);
                Property(c => c.Id)
                    .IsRequired();
                Property(c => c.UserName)
                    .HasMaxLength(50);
                Property(c => c.Password)
                    .HasMaxLength(50);
            }
        }

        #endregion

        #region CategoryConfiguration

        public class CategoryConfiguration : EntityTypeConfiguration<Category>
        {
            public CategoryConfiguration()
            {
                HasKey(c => c.Id);
                Property(c => c.Id)
                    .IsRequired();
                Property(c => c.Name)
                    .IsRequired()
                    .HasMaxLength(50);
            }
        }

        #endregion

        #region ArticleConfiguration

        public class ArticleConfiguration : EntityTypeConfiguration<Article>
        {
            public ArticleConfiguration()
            {
                HasKey(c => c.Id);
                Property(c => c.Id)
                    .IsRequired();
                Property(c => c.Title)
                    .HasMaxLength(50);
                Property(c => c.Description)
                    .HasMaxLength(200);
            }
        }

        #endregion

        #region DBInfoConfiguration

        public class DBInfoConfiguration : EntityTypeConfiguration<DBInfo>
        {
            public DBInfoConfiguration()
            {
                HasKey(c => c.Id);
                Property(c => c.Id)
                    .IsRequired();
                Property(c => c.Explain)
                    .IsRequired()
                    .HasMaxLength(200);
            }
        }

        #endregion

        #region MenuConfiguration

        public class MenuConfiguration : EntityTypeConfiguration<Menu>
        {
            public MenuConfiguration()
            {
                HasKey(c => c.Id);
                Property(c => c.Id)
                    .IsRequired();
                Property(c => c.Name)
                    .HasMaxLength(50);
                Property(c => c.Url)
                    .HasMaxLength(200);   
            }
        }

        #endregion

    }
}

 

posted @ 2016-01-21 09:16  jamess  阅读(189)  评论(0编辑  收藏  举报