首页 > Windows开发 > 详细

C# EF CodeFirst的仓储

时间:2021-05-14 15:52:01      阅读:14      评论:0      收藏:0      [点我收藏+]

参考: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; }
    }

 

技术分享图片

 

 第二步:添加EF框架

技术分享图片

 

 

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的仓储

原文:https://www.cnblogs.com/ReAiQingYi/p/14767497.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!