c# - Entity Framework Core 种子数据
问题描述
所以我有一个 Entity Framework Core 第一个数据库和一个 .Net Core 应用程序。
我想在创建数据库时向其中添加种子数据。我知道 FluentAPI 有 HasData 方法,但这不是我想要的。
创建数据库后,我想使用随机生成的密码(每次都不同)创建一个用户,该密码将保存在服务器中的文件中。
我不能使用 HasData 方法,因为它每次都会创建相同的密码。
所以我的问题是:除了 HasData 方法之外,还有其他方法可以将种子数据添加到 Entity Framework Core Code First 数据库
解决方案
是的!有一种方法!您可以执行以下操作:
public static class DatabaseInitializer
{
public static void Initialize(YourDbContext dbContext)
{
dbContext.Database.EnsureCreated();
if (!dbContext.Users.Any())
{
// Write you necessary to code here to insert the User to database and save the the information to file.
}
}
}
该类的Configure
方法Startup
如下:
public void Configure(IApplicationBuilder app, IHostingEnvironment env, YourDbContext dbContext)
{
// other configurations
..............
DatabaseInitializer.Initialize(dbContext);
..............
// other configurations
}
Initialize
方法只会在应用程序启动期间被调用一次。
推荐阅读
- powershell - I want to use get-counter ”\\$env:COMPUTERNAME\memory\% committed bytes in use” to append to a csv in the next line
- python - I have an attribute error and i can't find the answer to my problem
- javascript - set src of an image as copied image in clipboard
- react-native - How to call react-compound-timer pause and resume in function?
- maven - 荆棘跑目标
- android - NullPointerException from Firebase Messaging in Google Play Console Reports
- python - While executing the below script I get the error "'chromedriver' executable needs to be in PATH"
- css - How to select in css 1st 4th 5th or 2nd 3rd 6th element
- node.js - 尝试在节点中呈现 JSX 时出现意外令牌
- react-native - TouchableNativeFeedback onLongPress radius not affected