<center id="qkqgy"><optgroup id="qkqgy"></optgroup></center>
  • <menu id="qkqgy"></menu>
    <nav id="qkqgy"></nav>
    <xmp id="qkqgy"><nav id="qkqgy"></nav>
  • <xmp id="qkqgy"><menu id="qkqgy"></menu>
    <menu id="qkqgy"><menu id="qkqgy"></menu></menu>
    <tt id="qkqgy"><tt id="qkqgy"></tt></tt>

  • 遷移∶代碼先行,現有代碼再有數據庫;數據庫隨著業務變化遷移改變;

    遷移命令:

    1.可以通過EfCore帶有的api來完成從代碼生成數據庫

    確保以上的都存在

    MigrationDBContext.cs

    ? public partial class MigrationDBContext : DbContext
    ? ? {
    ? ? ? ? public MigrationDBContext()
    ? ? ? ? {
    ? ? ? ? }

    ? ? ? ? public MigrationDBContext(DbContextOptions<MigrationDBContext> options)
    ? ? ? ? ? ? : base(options)
    ? ? ? ? {
    ? ? ? ? }

    ? ? ? ? public virtual DbSet<UserDatum> UserData { get; set; }
    ? ? ? ? /// <summary>
    ? ? ? ? /// 需要連接數據庫所用的配置
    ? ? ? ? /// </summary>
    ? ? ? ? /// <param name="modelBuilder"></param>
    ? ? ? ? protected override void OnConfiguring(DbContextOptionsBuilder
    optionsBuilder)
    ? ? ? ? {
    ? ? ? ? ? ? if (!optionsBuilder.IsConfigured)
    ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ?
    optionsBuilder.UseSqlServer("Server=.;Database=MigrationDada;Trusted_Connection=True;User
    Id=sa;Password=123");
    ? ? ? ? ? ? }
    ? ? ? ? }
    ? ? ? ? /// <summary>
    ? ? ? ? /// 這里是配置實體和數據庫之間的映射關系
    ? ? ? ? /// </summary>
    ? ? ? ? /// <param name="modelBuilder"></param>
    ? ? ? ? protected override void OnModelCreating(ModelBuilder modelBuilder)
    ? ? ? ? {
    ? ? ? ? ? ? modelBuilder.Entity<UserDatum>(entity =>
    ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? entity.HasKey(e => e.PId);

    ? ? ? ? ? ? ? ? entity.Property(e => e.PId)
    ? ? ? ? ? ? ? ? ? ? .ValueGeneratedNever()
    ? ? ? ? ? ? ? ? ? ? .HasColumnName("p_Id");

    ? ? ? ? ? ? ? ? entity.Property(e => e.PAge)
    ? ? ? ? ? ? ? ? ? ? .HasMaxLength(50)
    ? ? ? ? ? ? ? ? ? ? .HasColumnName("p_Age");

    ? ? ? ? ? ? ? ? entity.Property(e => e.PInfo)
    ? ? ? ? ? ? ? ? ? ? .HasMaxLength(50)
    ? ? ? ? ? ? ? ? ? ? .HasColumnName("p_Info");

    ? ? ? ? ? ? ? ? entity.Property(e => e.PName)
    ? ? ? ? ? ? ? ? ? ? .HasMaxLength(50)
    ? ? ? ? ? ? ? ? ? ? .HasColumnName("p_Name");
    ? ? ? ? ? ? });

    ? ? ? ? ? ? OnModelCreatingPartial(modelBuilder);
    ? ? ? ? }

    ? ? ? ? partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
    ? ? }

    UserDatum.cs

    ?public partial class UserDatum
    ? ? {
    ? ? ? ? public int PId { get; set; }
    ? ? ? ? public string PName { get; set; }
    ? ? ? ? public string PAge { get; set; }
    ? ? ? ? public string PInfo { get; set; }
    ? ? }

    應用

    try {
    ? ? ? ? ? ? ? ? using (MigrationDBContext context=new MigrationDBContext())
    ? ? ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? ? ? context.Database.EnsureDeleted();//如果有對應的數據庫,就刪除
    ? ? ? ? ? ? ? ? ? ? context.Database.EnsureCreated();//創建數據庫
    ? ? ? ? ? ? ? ? }

    ? ? ? ? ? ? } catch (Exception ex)
    ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? Console.WriteLine(ex.Message);
    ? ? ? ? ? ? ? ? throw;
    ? ? ? ? ? ? }

    2.遷移

    1).在控制臺輸入命令??add-migration Init001

    ?成功之后會出現一個Migrations文件夾,其中是遷移文件,可以通過遷移文件生成數據庫。

    ?2).在控制臺輸入 update-database

    結果

    3).應用

    try {
    ? ? ? ? ? ? ? ? using (MigrationDBContext context = new MigrationDBContext())
    ? ? ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? ? ? //添加信息
    ? ? ? ? ? ? ? ? ? ? context.UserData.Add(new UserDatum()
    ? ? ? ? ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? ? ? ? ? PId = 1,
    ? ? ? ? ? ? ? ? ? ? ? ? PName = "hello",
    ? ? ? ? ? ? ? ? ? ? ? ? PAge = "892",
    ? ? ? ? ? ? ? ? ? ? ? ? PInfo = "what happen to you?"
    ? ? ? ? ? ? ? ? ? ? });
    ? ? ? ? ? ? ? ? ? ? //保存修改
    ? ? ? ? ? ? ? ? ? ? context.SaveChanges();
    ? ? ? ? ? ? ? ? }

    ? ? ? ? ? ? } catch (Exception ex)
    ? ? ? ? ? ? {
    ? ? ? ? ? ? ? ? Console.WriteLine(ex.Message);
    ? ? ? ? ? ? ? ? throw;
    ? ? ? ? ? ? }

    技術
    下載桌面版
    GitHub
    百度網盤(提取碼:draw)
    Gitee
    云服務器優惠
    阿里云優惠券
    騰訊云優惠券
    華為云優惠券
    站點信息
    問題反饋
    郵箱:ixiaoyang8@qq.com
    QQ群:766591547
    關注微信
    巨胸美乳无码人妻视频