当前位置: 代码迷 >> 综合 >> wpf 使用.net core EFcore
  详细解决方案

wpf 使用.net core EFcore

热度:83   发布时间:2024-02-27 01:49:49.0

1.新建wpf .net core 项目,引用以下包

2 App.xaml里面去掉StartupUrl

<Application x:Class="WpfApp3.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:local="clr-namespace:WpfApp3"><Application.Resources></Application.Resources>
</Application>

3 新建appsettings.json,并设置编译属性

{"ConnectionStrings": {"SqlConnection": "datasource = default.sqlite"}
}

 

4 新建DataContext类

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.EntityFrameworkCore;namespace WpfApp3
{public class DataContext:DbContext{public DataContext(DbContextOptions options) : base(options){this.Database.Migrate();}}
}

5 修改App.xaml.cs

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.EntityFrameworkCore;using System.IO;namespace WpfApp3
{/// <summary>/// Interaction logic for App.xaml/// </summary>public partial class App : Application{public ServiceProvider ServiceProvider { get; private set; }public IConfigurationRoot Configuration { get; private set; }protected override void OnStartup(StartupEventArgs e){var builder = new ConfigurationBuilder().SetBasePath(Directory.GetCurrentDirectory()).AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);Configuration = builder.Build();var serviceCollection = new ServiceCollection();ConfigurationServices(serviceCollection);ServiceProvider = serviceCollection.BuildServiceProvider();var mainView = ServiceProvider.GetRequiredService<MainWindow>();mainView.Show();base.OnStartup(e);}private void ConfigurationServices(ServiceCollection services){services.AddTransient(typeof(MainWindow));services.AddDbContext<DataContext>(options => options.UseSqlite(Configuration.GetConnectionString("SqlConnection")));}}
}

6 修改MainWindow.xaml.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
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 WpfApp3
{/// <summary>/// Interaction logic for MainWindow.xaml/// </summary>public partial class MainWindow : Window{private readonly DataContext _dataContext;public MainWindow(DataContext dataContext){InitializeComponent();_dataContext = dataContext;}}
}

 

  相关解决方案