2012-01-18 5 views
0

Я знаю, что это было поднято во многих случаях, но . Мне кажется, что ничего из предоставленных ответов не помогает. Я знаю о основной проблеме и использовал беглый api, чтобы попытаться изменить это поведение, но похоже, что это игнорируется (или я делаю это неправильно. Вот пример кода в вопросеМножество каскадных путей error entity framework Сначала код

public class Request 
{ 
    [Key] 
    public int RequestID { get; set; } 
    public string RequestDescription { get; set; } 
    public int RequestPriority { get; set; } 
    public string RequestStub { get; set; } 
    [ForeignKey("Requester")] 
    public int RequesterID { get; set; } 
    [ForeignKey("Admin")] 
    public int AdminID { get; set; } 
    public bool RequestAnsweredFlag { get; set; } 
    public bool RequestSeenFlag { get; set; } 


    public virtual User Requester {get;set;} 
    public virtual User Admin { get; set; } 

}

контекст класса

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
    { 


     modelBuilder.Entity<Request>() 
       .HasRequired(a => a.Requester) 
       .WithMany() 
       .HasForeignKey(u => u.RequesterID); 

     modelBuilder.Entity<Request>().HasRequired(a => a.Admin) 
         .WithMany() 
         .HasForeignKey(u => u.AdminID).WillCascadeOnDelete(false); 

    } 

любая помощь будет очень признательна.

ответ

1

Если я правильно понял, вам нужно удалить атрибуты [ForeignKey («Requester»)], [ForeignKey («Администратор»)] и удалить бесплатные правила api. И изменить код, как следовать

public class Request 
{ 
    [Key] 
    public int RequestID { get; set; } 
    public string RequestDescription { get; set; } 
    public int RequestPriority { get; set; } 
    public string RequestStub { get; set; } 
    public int RequesterID { get {return Requester.Id} } 
    public int AdminID { get {return Admin.Id} } 
    public bool RequestAnsweredFlag { get; set; } 
    public bool RequestSeenFlag { get; set; } 

    public virtual User Requester {get;set;} 
    public virtual User Admin { get; set; } 

} 

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
} 

он должен правильно отобразить все по умолчанию

+0

Он должен был отметить это как ответ, он работает для меня отлично :) –

Смежные вопросы