使用实体框架重构数据库
本文关键字:重构 数据库 框架 实体 | 更新日期: 2023-09-27 18:16:54
我正在使用一个旧的数据库,我们想做一些改变。我一直在阅读我喜欢的流畅API,但是我读得越多,就越觉得必须从代码优先的角度来看待它。我想知道的是,有没有办法利用流畅的API当你有数据库第一?我希望做的一些事情是重构数据库端的一些列名,并将它们映射到现有的数据模型,这样我就可以在整个应用程序中逐步更改它们。我想知道是否有人有过这样做的经验,从哪里开始最好。
实体框架是应用程序和数据库之间的ORM。您可以先创建模型,先编写代码或先创建数据库,然后仍然使用这些特性。如果您担心实体框架将对数据库做什么,那么您需要查看迁移。如果将迁移配置为自动并且允许数据丢失,那么您可能会通过更改类而丢失数据。但是,如果您正确地管理它,您可以使用EF按原样对数据库建模,然后使用迁移来实际实现数据库。我要说的是,Fluent API确实是首先为代码量身定制的,做下面的工作实际上比从数据库生成POCO和只使用代码要多。不管怎样,我希望这能有所帮助。
你必须创建一个从EntityTypeConfiguration
派生的配置
对于你的例子,
public class CustomerConfiguration: EntityTypeConfiguration<Customer>;
{
public CustomerConfiguration(): base()
{
HasKey(p => p.Id);
Property(p => p.Id).
HasColumnName("Id").
HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity).
IsRequired();
Property(p => p.dtUpdated).
HasColumnName("EntryTs").
IsRequired();
ToTable("Customers");
}
}
或流畅的api…modelBuilder.Entity<ClassName>().ToTable("DatabaseTableName", "DatabaseSchema");
https://msdn.microsoft.com/en-us/library/jj591617 (v = vs.113) . aspx