<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      efcore 的同步方法

      打開 程序包管理器控制臺
      cd 項目根目錄(比如 cd C:\Users\Administrator\source\repos\WpfApp2\WpfApp2 回車)

      dotnet ef migrations add AddLoginTable
      (如果報錯:"No executable found matching command 'dotnet-ef'" 就運行:dotnet tool install --global dotnet-ef)

      dotnet ef database update

      如果沒有完整的記錄,dotnet ef migrations add AddLoginTable 每次都會生成所有表的更新,所以需要保留
      __EFMigrationsHistory表的記錄和項目里自動生成的Migrations文件夾和AppDbContextModelSnapshot.cs,另一個時間名的文件用完后再刪掉)

      新增類和修改類都一樣的操作,軟件會自動處理

      ---------------------------------------------------------------------

      主要類:App.xaml.cs

      using Microsoft.EntityFrameworkCore;
      using Microsoft.Extensions.DependencyInjection;
      using System.Windows;
      
      namespace WpfApp2
      {
          public partial class App : Application
          {
              public IServiceProvider ServiceProvider { get; private set; }
      
              protected override void OnStartup(StartupEventArgs e)
              {
                  var services = new ServiceCollection();
      
                  // 配置連接字符串
                  var connectionString = "Server=.\\mssqlserver2016;Database=StudentsData;User Id=sa;Password=123456;TrustServerCertificate=True";
      
                  // 注冊 DbContext
                  services.AddDbContext<AppDbContext>(options =>
                      options.UseSqlServer(connectionString));
      
                  // 注冊其他服務
                  services.AddTransient<MainWindow>();
      
                  ServiceProvider = services.BuildServiceProvider();
      
                  //// 創建并顯示主窗口
                  var mainWindow = ServiceProvider.GetRequiredService<MainWindow>();
      
      
                  mainWindow.Show();
              }
          }
      }
      //Db類

      using
      Microsoft.EntityFrameworkCore; namespace WpfApp2 { public class AppDbContext : DbContext { public static object lockobj = new object(); public DbSet<Login> Logins { get; set; } public DbSet<User> Usera { get; set; } // 構造函數接受 DbContextOptions 并傳遞給基類 public AppDbContext(DbContextOptions<AppDbContext> options) : base(options) { } } }

      窗體:

      using Microsoft.EntityFrameworkCore;
      using Microsoft.Extensions.DependencyInjection;
      using System.Text;
      using System.Windows;
      using System.Windows.Controls;
      using System.Windows.Data;
      using System.Windows.Documents;
      using System.Windows.Input;
      using System.Windows.Media;
      using System.Windows.Media.Imaging;
      using System.Windows.Navigation;
      using System.Windows.Shapes;
      
      namespace WpfApp2
      {
          /// <summary>
          /// Interaction logic for MainWindow.xaml
          /// </summary>
          public partial class MainWindow : Window
          {
              public static IServiceScopeFactory serviceScopeFactory = null;
      
              public MainWindow()
              {
                  InitializeComponent();
      
                  serviceScopeFactory = ((App)Application.Current).ServiceProvider.GetRequiredService<IServiceScopeFactory>();
      
                  Task.Run(() =>
                  {
                      while (true)
                      {
                          lock (AppDbContext.lockobj)
                          {
                              using (var scope = serviceScopeFactory.CreateScope())
                              {
                                  var dbContext = scope.ServiceProvider.GetRequiredService<AppDbContext>(); // 子線程專屬實例
                                  var l = dbContext.Logins.ToList();
                                  var temp = l.First();
                                  temp.UserName = "333333";
                                  dbContext.SaveChanges();
      
                              }
                          }
                      }
                  });
              }
          }
      }

      工廠類,用于執行命令時報錯用:

      using Microsoft.EntityFrameworkCore;
      using Microsoft.EntityFrameworkCore.Design;
      using Microsoft.Extensions.Configuration;
      using System.IO;
      
      namespace WpfApp2
      {
          // 設計時工廠類,用于 EF Core 工具創建 DbContext
          public class AppDbContextFactory : IDesignTimeDbContextFactory<AppDbContext>
          {
              public AppDbContext CreateDbContext(string[] args)
              {
                  // 配置連接字符串(與 App.xaml.cs 中的一致)
                  var connectionString = "Server=.\\mssqlserver2016;Database=StudentsData;User Id=sa;Password=123456;TrustServerCertificate=True";
      
                  var optionsBuilder = new DbContextOptionsBuilder<AppDbContext>();
                  optionsBuilder.UseSqlServer(connectionString);
      
                  return new AppDbContext(optionsBuilder.Options);
              }
          }
      }

       

      posted on 2025-07-07 00:09  海灣的貝殼  閱讀(9)  評論(0)    收藏  舉報

      主站蜘蛛池模板: 中文字幕日韩精品亚洲一区| 欧美成人aaa片一区国产精品| 成在人线AV无码免观看| 好了av四色综合无码| 在线观看国产成人av片| 国产成人a在线观看视频免费| 色婷婷av久久久久久久| 97久久超碰精品视觉盛宴| 国产成人精品午夜2022| 国产av一区二区不卡| 国产精品久久国产精麻豆| 边添小泬边狠狠躁视频| 亚洲欧美人成网站在线观看看| 热99久久这里只有精品| 九九热在线视频精品免费| 久久国内精品自在自线91| 美女一区二区三区亚洲麻豆| 日本一区二区三区激情视频| 亚洲欧美在线观看品| 懂色AV| 91亚洲精品一区二区三区| 成人视频在线观看| 麻豆天美国产一区在线播放| 97中文字幕在线观看| 精品人妻一区二区三区蜜臀| 中文文字幕文字幕亚洲色| 色翁荡熄又大又硬又粗又视频| 亚洲综合不卡一区二区三区| 好紧好滑好湿好爽免费视频| 99久久久国产精品免费无卡顿| 中文字幕成熟丰满人妻| 亚洲国产精品一区二区第一页| 国产色无码专区在线观看| 国产精品中文字幕一二三| 欧美老少配性行为| 欧洲精品码一区二区三区| 韩国免费a级毛片久久| 耿马| 一本久久a久久精品综合| 久久综合九色综合97婷婷| 少妇被粗大的猛烈xx动态图|