6

Fluent NHibernate에서 매핑에 대한 계단식 설정을 설정할 수 있습니다.EF CTP5 Fluent API를 사용하여 일대일 관계에서 계단식 삭제를 전환하는 방법

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 "코드 우선"에서 수행됩니까?

답변

14

모델에 일대일 관계가있는 경우 EF 코드는 먼저 계단식 삭제를 기본 규칙으로 설정합니다. 따라서 특별한 작업을 실제로 수행 할 필요는 없지만 규칙을 재정의하고 계단식 삭제를 전환하려는 시나리오를 고려해 봅시다. 이것은이 EF CTP5 오늘 아침 함께 제공된 유창함 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); 
    } 
} 
+1

감사 모르테, 단지, 해피 코드 - Firsting – merbla

+1

포스트에게 어떤 문제가 자신을 본 적이 :) –