EF生成数据库(使用控制台命令)

52 篇文章 1 订阅
25 篇文章 0 订阅

转载:https://blog.csdn.net/killcwd/article/details/52023226

1.建立好自己的实体类

2.配置一个继承DbContext 的上下文类

Context类(方法名字和类名相同):

 public YPContext()
            : base("name=xxxx")
        {
            this.Configuration.LazyLoadingEnabled = false;
              this.Configuration.AutoDetectChangesEnabled = true;
        }
/*"name=xxxx"是配置链接数据库的字符串一般找哦web.config文件加入:

  <connectionStrings>
    <add name="xxxx" connectionString="data source=数据库名;initial catalog=生成的数据库文件名字;integrated security=True;MultipleActiveResultSets=True;" providerName="System.Data.SqlClient" />
  </connectionStrings>

*/

3.配置映射实体类的设置属性,继承EntityTypeConfiguration<T>的类(就是配置每个类字段的大小、是否允许空.....):

public  class 实体类属性映射: YP_EntityConfigurationBase<类名>
    {
        public YP_EmployeeMapping()
        {
            this.Property(x => x.Address).HasMaxLength(50);//地址
            this.Property(x => x.LoginId).HasMaxLength(20).IsRequired();
            this.Property(x => x.LoginPwd).HasMaxLength(20).IsRequired();
            this.Property(x => x.Sex).HasMaxLength(5);
            this.HasRequired(x => x.Store);
            this.Property(x => x.Tel).HasMaxLength(11);

          //  this.Property(x => x.Birthday).IsOptional();//出生 ?类型要设置吗
           // this.Property(x => x.Email);//邮箱
           // this.Property(x => x.EmployeeName).HasMaxLength(20);//姓名
           // this.Ignore(x => x.EntityVersion); //版本
          //  this.Property(x => x.IsDeleted).HasDatabaseGeneratedOption(true).IsRequired(); //?HasDatabaseGeneratedOption 是否写在Base里面?  
            //this.Property(x => x.RoleLevel).IsRequired();//枚举?    
            //this.Property(x => x.StoreID).IsRequired();//这个值从哪里来?            
           // this.Property(x => x.CreatonTime).IsRequired(); //?是否写在Base里面
            //this.HasRequired(x => x.Store).WithMany();//外键 此处表YP_Employee一定要有值,多个表表此表的值
            //this.HasRequired(x => x.Store).WithOptional();//外键 此处表YP_Employee一定要有值,也就是Store表可有可无此表的值
            //this.HasRequired(x => x.Store).WithRequiredDependent();//外键
            //this.HasRequired(x => x.Store).WithRequiredPrincipal();//外键
        }
    }

4.在Context类中加入读取配置映射文件方法:

public DbSet<xxxx> xxxx{ get; set; } //要生成的数据库的类名

  protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            modelBuilder.Configurations.Add(new xxxxMapping());//实体类属性映射的类
            //禁用一对一关联删除
            modelBuilder.Conventions.Remove<OneToOneConstraintIntroductionConvention>();
            // 禁用一对多级联删除
            modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
            // 禁用多对多级联删除
            modelBuilder.Conventions.Remove<ManyToManyCascadeDeleteConvention>();
            //禁用表名复数
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            Database.SetInitializer<Context>(null);
            base.OnModelCreating(modelBuilder);

        }

5.弄好前面的设置就可以执行控台的命令了

5.1生成一个配置类命令:Enable-Migrations -EnableAutomaticMigrations

5.2生成一个数据库更新脚本文件:Add-Migration InitialCreate

5.3生成数据库文件的命令:Update-Database -Verbose

6.这样的话就可以将实体类转化成数据库文件了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
除了使用命令行工具创建 SQLite 数据库EF Core 还提供了在应用程序代码中创建数据库的方法。可以按照以下步骤进行: 1. 安装 EF Core 和 SQLite NuGet 包。 在 Visual Studio 中,可以通过 NuGet 包管理器来安装 EF Core 和 SQLite。可以在“工具”->“NuGet 包管理器”->“程序包管理器控制台”中使用以下命令来安装它们: ```bash Install-Package Microsoft.EntityFrameworkCore.Sqlite Install-Package Microsoft.EntityFrameworkCore.Tools ``` 2. 创建 DbContext 类。 创建一个类继承自 DbContext,该类表示一个数据库上下文,用于访问和操作数据库。在 DbContext 类中,可以通过 DbSet 属性来表示要在数据库中创建的实体类。 ```csharp public class MyDbContext : DbContext { public DbSet<Person> People { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder options) => options.UseSqlite("Data Source=mydatabase.db"); } ``` 上述代码表示创建了一个 DbContext,其中包含一个名为 People 的 DbSet 属性,表示要在数据库中创建一个名为 "People" 的表。 3. 创建实体类。 在 DbContext 类中,使用 DbSet 属性表示要在数据库中创建的实体类,如上述代码所示。实体类通常包含表中的列,每个属性表示一个列。 ```csharp public class Person { public int Id { get; set; } public string Name { get; set; } public int Age { get; set; } } ``` 上述代码表示创建了一个名为 Person 的实体类,其中包含 Id、Name 和 Age 三个属性,分别表示表中的三个列。 4. 在应用程序代码中创建数据库。 可以使用以下代码在应用程序代码中创建数据库: ```csharp using (var context = new MyDbContext()) { context.Database.EnsureCreated(); } ``` 上述代码表示创建一个 MyDbContext 实例,并使用 EnsureCreated 方法创建数据库。如果数据库已经存在,则不会执行任何操作。 希望这些步骤对您有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值