基礎入門教程
2022-12-2710
EF Core 是一個ORM(對象關系映射),它使 .NET 開發人員可以使用 .NET對象操作數據庫,避免了像ADO.NET訪問數據庫的代碼,開發者只需要編寫對象即可。
EF Core 支持多種數據庫引擎:
1.獲取EF Core
通過NuGet獲取要使用的數據庫支持。比如: SQL Sever
打開NuGet程序包管理器控制臺,輸入:-..
2.模型
EF Core 是通過一個模型進行數據庫訪問的。模型由實體類和表示與數據庫中的會話組成的,以及允許你查詢和保存數據派生的上下文。
既可以從現有數據庫生成模型,也可以使用EF 遷移來完成從模型生成數據庫,也就是 First 和 Code First。
簡單的模型:
efault'>public partial class TestContext : DbContext
{
public TestContext()
{
}
public TestContext(DbContextOptions options)
: base(options)
{

}
public virtual DbSet User { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
if (!optionsBuilder.IsConfigured)
{
#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
optionsBuilder.UseSqlServer("Data Source=.;Initial Catalog=Test;Integrated Security=True");
}
}
protected override void OnModelCreating(ModelBuilder modelBuilder)
{}
}
使用模型操作數據庫:
public class HomeController : Controller
{
private DataContext _context;

public HomeController(DataContext context)
{
_context = context;
}
public IActionResult Index()
{
_context.User.Add(new User() { Name="name",Password="123"});
_context.SaveChanges();
//查詢
var users = _context.User.ToList();
return View();
}
3.Code First
Code First 也就是通過EF遷移來完成從模型生成數據庫。
1.創建項目
創建一個ASP.NET Core WEB 應用程序
2.打開NuGet包管理器下載.. 和..Tools
3.在文件夾創建實體類和上下文類
public class BlogContext:DbContext
{
public BlogContext(DbContextOptions options)
: base(options)
{
}
public DbSet Blog { get; set; }
public DbSet Post { get; set; }
}
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }
public virtual List Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }

public string Content { get; set; }
public int BlogId { get; set; }
public Blog Blog { get; set; }
}
4.在方法中添加上下文依賴注入:
public void ConfigureServices(IServiceCollection services)
{
services.Configure(options =>
{
// This lambda determines whether user consent for non-essential cookies is needed for a given request.
options.CheckConsentNeeded = context => true;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
var connectionString = Configuration.GetConnectionString("DefaultConnection");
services.AddDbContext(options =>
options.UseSqlServer(connectionString));
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
}
5.在.json中添加鏈接數據庫字符串
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=.;Initial Catalog=Blog;Integrated Security=True"
},
"Logging": {
"LogLevel": {
"Default": "Information"
}
},
"AllowedHosts": "*"
}
6.打開NuGet程序包管理控制臺ado.net數據庫訪問技術案例教程,先輸入 Add- ,再輸入-。遷移成功后,會創建數據庫,以及會在項目中生成一個文件夾,里面時遷移記錄。
創建成功就可以通過構造函數依賴注入的方式訪問數據庫了。
4. First
First,也就是通過現有數據庫生成模型
1.創建項目ado.net數據庫訪問技術案例教程,并安裝.. , ..Tools 和...
2.在NuGet程序包管理器控制臺輸入:- "Data =.; =Blog; =True" .. 。執行成功會生成相關模型:
3,現在可以使用上下文訪問數據庫了,但是不能通過依賴注入的方式。如果需要,還是在方法中添加代碼:.()。如果要使用.json中的連接字符串,就需要按照上面方法中所寫的。