作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Fluent NHibernate 中,您可以设置映射的级联设置,例如
public class StoreMap : ClassMap<Store>
{
public StoreMap()
{
Id(x => x.Id);
Map(x => x.Name);
HasMany(x => x.Staff)
.Inverse()
.Cascade.None();
HasManyToMany(x => x.Products)
.Cascade.All()
.Table("StoreProduct");
}
}
这是如何在 Entity Framework “代码优先”中完成的?
最佳答案
如果您的模型中有一对多关系,EF 代码首先将按默认约定启用级联删除。因此,您实际上不需要做任何特殊的事情,但让我们考虑一个您想要覆盖约定并关闭级联删除的场景。这就是 EF CTP5 附带的 Fluent API 完成的方式。 今天早些时候:
public class Customer
{
public int CustomerId { get; set; }
public virtual ICollection<Order> Orders { get; set; }
}
public class Order
{
public int OrderId { get; set; }
public int CustomerId { get; set; }
public virtual Customer Customer { get; set; }
}
public class StackoverflowContext : DbContext
{
public DbSet<Customer> Customers { get; set; }
public DbSet<Order> Orders { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Customer>()
.HasMany(c => c.Orders)
.WithRequired(o => o.Customer)
.HasForeignKey(o => o.CustomerId)
.WillCascadeOnDelete(false);
}
}
关于.net - 如何使用 EF CTP5 Fluent API 在一对多关系中关闭级联删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4383046/
我是一名优秀的程序员,十分优秀!