joh*_*son 10 .net c# wpf entity-framework-core .net-core
我想构建一个使用实体框架核心的WPF应用程序,以便我可以处理SQLite数据库.
然后,我会执行以下操作,例如:
Microsoft.EntityFrameworkCore.Sqlite和Microsoft.EntityFrameworkCore.Tools.MainWindow.xaml并为事件添加一个事件处理程序Click,使得xaml看起来像:<Window x:Class="WPFEFCoreDeploymentTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Click="ButtonBase_OnClick"></Button>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
MainWindow.xaml.csnamespace WPFEFCoreDeploymentTest
{
using System.Linq;
using System.Windows;
using Microsoft.EntityFrameworkCore;
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
}
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
using (var context = new SomeContext())
{
if (context.Database.GetPendingMigrations().Any())
{
context.Database.Migrate();
}
}
}
}
public class SomeContext : DbContext
{
public DbSet<Test> Tests { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlite("Data Source=local.db");
}
}
public class Test
{
public int Id { get; set; }
}
}
Run Code Online (Sandbox Code Playgroud)
Add-Migration Migration1现在,如果我转到bin/Debug我的项目的文件夹,我注意到有许多DLL我认为是.NET核心的.NET标准的实现(也许我只是非常愚蠢),例如:
因此,如果我理解正确,当没有重定向添加到config app.config时,这些签名的程序集必须可以被可执行文件访问,这意味着如果我创建了一个安装程序,我必须将这些程序集与我的应用程序一起部署.但.NET框架已经实现了这些,如果有人想在他们的机器上执行WPF应用程序,则必须安装.NET框架.这让我想知道:
.net framework并且.net core可能导致应用程序直接或间接引用的程序集的重复实现(可能我的应用程序的其他模块使用.net framework's System.Net.Http.dll类但EF核心或其依赖项引用.net core'sSystem.Net.Http.dll还)?小智 1
简短回答:
我可以用 .net 框架的实现替换这些 .net core 实现程序集吗?是否可以?
不可以。如果您的应用程序是用 .NET Core 编写的,则不能。你也不应该。如果可能的话,我宁愿使用 .NET Core 程序集。
编辑:因为您已经在 WPF 应用程序中使用 .NET Framework,所以您可以卸载 .NET Core 实现并仅安装 .NET Framework。但是,如果您想在 Windows 以外的其他平台上使用您的应用程序,您应该使用 .NET Core 程序集。
| 归档时间: |
|
| 查看次数: |
2790 次 |
| 最近记录: |