首先需要安装:sql server数据库,选择 windows身份验证和sql server 身份验证,或者先选择windows身份验证,并勾选localdb。
打开sql server身份验证,可以在使用windows身份验证登录之后,在连接上右键点开属性-安全性
在 服务器身份验证中 勾选:
并确定。
紧接着,我们首先介绍一下如何在开发项目时如何使用localdb。
数据库连接字符串
"ConnectionStrings": {
"SportsStoreConnection": "Server=(localdb)\\MSSQLLocalDB;Database=SportsStore;MultipleActiveResultSets=true",
"IdentityConnection": "Server=(localdb)\\MSSQLLocalDB;Database=Identity;MultipleActiveResultSets=true"
}
开发阶段,卸载appsettings.json即可。
localdb使用上面的字符串即可。
我们先编写 模型以及数据库上下文类。
然后右键项目-通过终端打开
我们要使用的时dotnet-ef工具:
我们首先进行安装:
安装ef
dotnet tool install --global dotnet-ef
下面时3个命令:
1创建数据库迁移
dotnet ef migrations add Initial
后面的一个名字表明一个版本,同时我们也可以使用类似于dog1,dog2等名字,只需要知道不同的名字代表一个版本,同时可以在
中找到迁移代码,如果需要,这写代码可以安全删掉,只需要重新创建一个版本。
2重置数据库
dotnet ef database drop --force --context StoreDbContext
3应用更新
dotnet ef database update --context StoreDbContext
默认情况下,dotnet ef 工具会搜索项目中的所有类文件,但你也可以通过使用 --project 参数来指定要搜索的项目文件。例如,--project MyProject.csproj 表示只搜索名为 MyProject.csproj 的项目文件中的类。
当 dotnet ef 工具找到上下文类后,它会使用该类来执行相应的数据库操作,比如应用迁移或生成数据库脚本。
如果有多个数据库上下文,比如,我的项目(来自书中)包含了一个商店和一个身份验证,在创建迁移的时候也需要指定上下文。
PS C:\Users\betha\source\repos\SportStore\SportStore> dotnet ef migrations add Year --context StoreDbContext
Build started...
Build succeeded.
The Entity Framework tools version '7.0.10' is older than that of the runtime '8.0.0-preview.6.23329.4'. Update the tools for the latest features and bug fixes. See https://aka.ms/AAc1fbw for more information.
Done. To undo this action, use 'ef migrations remove'
我们也可以 使用 ef migrations remove 撤销迁移。
如果自己的代码中包含迁移代码,那么可以不用指令3,直接运行数据库也会完成迁移。
比如下面的种子数据填充类的(只会迁移特定上下文的数据库)
我试试,使用指令3能不能完成迁移
执行之后,竟然完成了迁移
。
因为这个书中的项目我已经改为了sql server数据库,之前使用的时localdb数据库。
这种做法可以省略自己手动创建数据库和数据表的麻烦。
接下来,就该使用sql server连接数据库了。
首先创建登录用户,在
中,连接到数据库连接。
在
中新建登录名。
注意取消勾选: 强制实施密码策略,勾选之后,密码会在每一次使用该账户登录后(下一次登录)就需要更改,之前的密码已经失效。
紧接着,我们需要配置
一般位于
找到
启用右侧的3个协议,确保可以远程连接(tcp等)
双击tcp/ip ,可以查看可以连接的ip地址
包含ipv4和ipv6地址。
勾选127.0.01 和其他地址(想要测试的地址)
可以选择启用 (已启用 选择为是)
提示需要 重启之后才能反映更改,
如图所示,右键选择重启
迁移数据库到sql server,一般localdb数据库文件位于
在
数据库连接-数据库-附加,把刚才找到的数据库文件复制到 c盘之外,选择添加,点击mdf文件,并确定即可。
然后我们就可以使用sql server进行连接了。
我们取消 种子数据类的调用。 种子数据类用于localdb。(种子数据已经填充完毕,数据库已经较为完备,无需迁移(可以直接使用ef工具,完成sql server的迁移)) 。
进入上线工作或测试上线工作。