[英]Update entities in Entity Framework automatically
I have a simple database and I use Entity Framework
to perfom queries. 我有一个简单的数据库,并且使用
Entity Framework
执行查询。
Customer.cs Customer.cs
namespace DataAccess.Entities
{
[Table("Customer")]
public partial class Customer
{
public int CustomerId { get; set; }
[Required]
[StringLength(50)]
public string CustomerName { get; set; }
public int StatusId { get; set; }
public virtual Status Status { get; set; }
}
}
Context.cs Context.cs
public partial class Context : DbContext
{
public Context()
: base("name=DefaultConnection")
{
}
public virtual DbSet<Customer> Customer { get; set; }
public virtual DbSet<Status> Status { get; set; }
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Customer>()
.Property(e => e.CustomerName)
.IsUnicode(false);
modelBuilder.Entity<Status>()
.HasMany(e => e.Customer)
.WithRequired(e => e.Status)
.WillCascadeOnDelete(false);
}
}
But if my database change, how to update my entities and the OnModelCreating
method ? 但是,如果我的数据库发生更改,如何更新我的实体和
OnModelCreating
方法? Without do this manually ? 没有手动操作吗?
Thank's 谢谢
只要您使用“代码优先”方法,对数据库的每次更改都应该通过模型完成,因此您不应处理所陈述的问题,并且可以假定数据库结构与模型匹配
If you are using Asp.Net MVC, you can use Migrations in Package Manager Console as shown below. 如果您使用的是Asp.Net MVC,则可以在软件包管理器控制台中使用“迁移”,如下所示。
For default data/enums you should use seeding. 对于默认数据/枚举,应使用种子设置。 For seeding in Package Manager Console
用于在Package Manager控制台中播种
a partial class with the name PopulateStatus will open, in up() method, you should write the SQl commands to insert default data. 将打开名为PopulateStatus的局部类,在up()方法中,应编写SQl命令以插入默认数据。 In your case its Status table.
在您的情况下,其状态表。 Then update database command in package manager
然后在程序包管理器中更新数据库命令
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.