我复制了您的解决方案并找到了...一个解决方案:)
- “核心”项目 - 名为 ClassLibrary1
- “关系”项目 - 称为 EFClssLibrary
- WPF 应用项目 - 名为 WpfApp1
让我们深入。
1。核心项目
名称:ClassLibrary1。
类型:.NET Standard 2.0 类库。
依赖项:无。
在我的测试解决方案中,它只包含一个类,一个名为Person的模型。
Person.cs
namespace ClassLibrary1
{
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public string Surname { get; set; }
}
}
2。关系项目
名称:EFClassLibrary。
类型:.NET Standard 2.0 类库。
依赖关系:
这个项目,在我的测试解决方案中,只包含一个类:数据库上下文。
ClientDbContext.cs
using ClassLibrary1;
using Microsoft.EntityFrameworkCore;
namespace EFClassLibrary
{
public class ClientDbContext : DbContext
{
const string connectionString = "Server=(localdb)\\mssqllocaldb;Database=ClientDb;Trusted_Connection=True;";
public ClientDbContext() : base() { }
public ClientDbContext(DbContextOptions<ClientDbContext> options) : base(options) { }
public DbSet<Person> People { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(connectionString);
}
}
}
连接字符串
在这个类中定义了一个使用连接字符串连接到数据库(假设它是 LocalDb SQL Server)。如果要将连接字符串放在配置文件中,可以在解决方案中添加共享配置文件,然后在 App.config 文件中引用该文件(有关更多信息,请查看 this page)
配置目标框架
为了能够在此项目上添加迁移而不将其他项目设置为启动项目,您必须设置目标框架。右键单击项目并单击 Edit EFClassLibrary.csproj 条目。在<TargetFramework>netstandard2.0</TargetFramework> 行下方,您应该添加另一行来指定您要定位的框架。要面向 .NET Framework 4.7,您应该添加
<TargetFramework>net47</TargetFramework>
所有允许值的列表可以在here找到。
我的 EFClassLibrary.csproj 在添加 .NET Framework 4.7 作为目标后看起来像下面的代码。
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<TargetFramework>net47</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="2.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="2.1.1" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.1.1" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ClassLibrary1\ClassLibrary1.csproj" />
</ItemGroup>
</Project>
添加迁移
现在您已准备好添加您的第一个迁移。打开包管理器控制台并将 EFClassLibrary 设置为默认项目。另外,将该项目设置为启动项目(右键单击该项目并单击设置为启动项目条目)。
类型
PM> Add-Migration Initial
然后
PM> Update-Database
3。 WPF 应用项目
名称:WpfApp1。
类型:WPF 应用程序使用.NET Framework 4.7。
依赖关系:
在这个项目中,我没有添加任何文件。 A 刚刚编辑了MainWindow.xaml.cs 文件以检查一切是否正常。
MainWindow.xaml.cs
using ClassLibrary1;
using EFClassLibrary;
using System.Windows;
namespace WpfApp1
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var db = new ClientDbContext();
db.People.Add(new Person()
{
Name = "Omar"
});
db.SaveChanges();
}
}
}
希望对你有帮助:)