• 微信公众号:美女很有趣。 工作之余,放松一下,关注即送10G+美女照片!

C# EF CodeFirst的仓储

开发技术 开发技术 1个月前 (05-13) 17次浏览

参考:https://www.cnblogs.com/hblc/p/12331424.html

第一步,先创建数据库模型。

 public class User
    {
        //主键
        [Key]
        //自增
        [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
        public int ID { get; set; }

        //索引
        [Column(Order = 1)]
        //不为空
        [Required]
        //数值长度
        [StringLength(50)]
        public string 名称 { get; set; }
    }

 

C# EF CodeFirst的仓储

 

 第二步:添加EF框架

C# EF CodeFirst的仓储

 

 

public class CreateDataBase : DbContext
    {
        //您的上下文已配置为从您的应用程序的配置文件(App.config 或 Web.config)
        //使用“CreateDataBase”连接字符串。默认情况下,此连接字符串针对您的 LocalDb 实例上的
        //“EditForm.Model.CreateDataBase”数据库// 
        //如果您想要针对其他数据库和/或数据库提供程序,请在应用程序配置文件中修改“CreateDataBase”
        //连接字符串。
        //使用自定义连接串
        public static string GetConstr()
        {
            string connString = ConfigurationManager.ConnectionStrings["CreateDataBase"].ToString();
            return connString;
        }
        public CreateDataBase()
            : base(GetConstr())
        {
            //模型更改时重新创建数据库
            Database.SetInitializer(new MigrateDatabaseToLatestVersion<CreateDataBase, ReportingDbMigrationsConfiguration>());
            this.Configuration.AutoDetectChangesEnabled = false;
            this.Configuration.ValidateOnSaveEnabled = false;
            this.Configuration.LazyLoadingEnabled = false;
            this.Configuration.ProxyCreationEnabled = false;
        }
        internal sealed class ReportingDbMigrationsConfiguration : DbMigrationsConfiguration<CreateDataBase>
        {
            public ReportingDbMigrationsConfiguration()
            {
                AutomaticMigrationsEnabled = true;//任何Model Class的修改將会直接更新DB
                AutomaticMigrationDataLossAllowed = true;
            }
        }
        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            base.OnModelCreating(modelBuilder);
            //modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();//这句是不要将EF生成的sql表名不要被复数 就是表名后面不要多加个S
        }
        public virtual DbSet<Model> Model { get; set; } 
}

 


程序员灯塔
转载请注明原文链接:C# EF CodeFirst的仓储
喜欢 (0)