提纲:
- 如果设置何种数据库和数据库连接字符串
- EFCore 如何获知表主键
- 如何将项目的变动更新到数据库
- 安装 EFCore 的数据库驱动
如何设置数据库连接?
通过覆盖 DbContext的 OnConfiguraturing方法可以配置数据库类型和数据库的连接字符串
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseLoggerFactory(ConsoleLoggerFactory) //使用log插件
.EnableSensitiveDataLogging() //此处将输入的参数也输出在Console中
.UseSqlServer(connectionString: "Data Source=.;Initial Catalog=FSLab;User ID=sa;Password=Atser123");
}
如何设置context取消追踪的全局变量
public DemoContext()
{
ChangeTracker.QueryTrackingBehavior = QueryTrackingBehavior.NoTracking; //这里是指对追踪进行释放的意思,并且设为全局变量
}
表的主键如何决定?
- 如果存在 Id 属性,则 Id为主键
- 如果存在 类名称Id,则类名Id为主键(例如, BlogId)
项目配置中 StartWorkingDirectory 节点的作用?
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.0</TargetFramework>
$(MSBuildProjectDirectory) 这个是对当前工程文件目录的引用,即项目文件所在目录的绝对路径
StartWorkingDirectory 表示在 VS中运行项目时,将以项目文件所在目录为工作目录,将从工作目录中寻找资源和文件;
但这个不影响终端下的执行方式,终端下执行时,总是以 exe文件所在目录作为相对目录
<StartWorkingDirectory>$(MSBuildProjectDirectory)</StartWorkingDirectory>
</PropertyGroup>
如何把变动更新到数据库?
// https://docs.microsoft.com/zh-cn/ef/core/miscellaneous/cli/powershell
Microsoft.EntityFrameworkCore.Tools — 安装 EFCore的项目管理工具
Microsoft.EntityFrameworkCore.Designer —需要安装Add-Migration InitialCreate 为迁移搭建基架,以便为模型创建一组初始表
Update-Database 命令创建数据库并向其应用新的迁移。
安装EFCore。
Microsoft.EntityFrameworkCore.SqlServer
**