C# 自动更新实体框架中的实体
我有一个简单的数据库,我使用C# 自动更新实体框架中的实体,c#,entity-framework,entity,C#,Entity Framework,Entity,我有一个简单的数据库,我使用实体框架执行查询 Customer.cs namespace DataAccess.Entities { [Table("Customer")] public partial class Customer { public int CustomerId { get; set; } [Required] [StringLength(50)] public string Custom
实体框架
执行查询
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; }
}
}
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);
}
}
Context.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; }
}
}
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);
}
}
公共部分类上下文:DbContext
{
公共上下文()
:base(“name=DefaultConnection”)
{
}
公共虚拟数据库集客户{get;set;}
公共虚拟数据库集状态{get;set;}
模型创建时受保护的覆盖无效(DbModelBuilder modelBuilder)
{
modelBuilder.Entity()
.Property(e=>e.CustomerName)
.IsUnicode(假);
modelBuilder.Entity()
.HasMany(e=>e.Customer)
.WithRequired(e=>e.Status)
.WillCascadeOnDelete(假);
}
}
但是如果我的数据库发生更改,如何更新我的实体和OnModelCreating
方法?如果没有,请手动执行此操作
Thank’s只要您使用“代码优先”的方法,对DB的每一个更改都应该通过模型来完成,因此您不应该处理您所述的问题,您可以假设DB结构与模型匹配如果您使用的是Asp.Net MVC,您可以在Package Manager控制台中使用迁移,如下所示
为了更好地理解,您可以查看您所说的“我的数据库更改”是什么意思?it中的数据或体系结构(列、约束等)?您好,体系结构不是更改DB体系结构的触发器是模型吗?我的意思是,要改变架构,你需要改变你的模型,你不应该从数据库本身开始,你是使用代码优先还是数据库优先?从发布的代码来看,这似乎是代码优先的方法?好的,所以我必须使用迁移来推动我的更改?不,这是一个WCF项目。但我有一个sql server项目。我部署Dacpac用于更新数据库的体系结构Hi Azerty123,如果安装了entityframework/引用了该项目,您也可以在WCF项目中使用相同的方法。但是我想保留我的其他项目,并使用Dacpac管理数据库。我不想在我的WCF项目中使用迁移,也不想使用edmx更新我的实体