2016-12-08 2 views
0

У меня есть несколько объектов вложенные вместе, и когда я пытаюсь добавить класс обследования я получаю ошибкуКратность ошибки в один ко многим отношений

Кратность ограничения нарушается. Роль «Response_Pages_Source» отношения «SurveyMonkeyAPIv3.Response_Pages» имеет множественность 1 или 0..1.

Поскольку оба они наследуют Entity

public abstract class Entity :IEquatable<Entity> 
{ 

    [DataMember] 
    public virtual long Id { get; set; } 

    public override int GetHashCode() 
    { 
     return Convert.ToInt16(Id); 
    } 

    public bool Equals(Entity other) 
    { 
     return false; 
    } 
} 

Обзор Entity

public class Survey : Entity, IEquatable<Survey> 
{ 
//More fields// 
    [DataMember] 
    public string AnalyzeUrl { get; set; } 


    [DataMember] 
    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public override long Id { get; set; } 

    [DataMember] 
    public string Language { get; set; } 

    [DataMember] 
    public int? PageCount { get; set; } 
    [DataMember] 
    public virtual List<Page> Pages { get; set; } 
    [DataMember] 
    public string Preview { get; set; } 
    //More Fields 
    public bool Equals(Survey other) 
    { 
     return this.Id == other.Id; 
    } 
} 

и Page

public class Page : Entity, IEquatable<Page> 
{ 
    [DataMember] 
    public string Description { get; set; } 

    [DataMember] 

    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public new long? Id { get; set; } 

    [DataMember] 
    public int? Position { get; set; } 

    [DataMember] 
    public int? QuestionCount { get; set; } 
    //More Objects 

    // public long SurveyId { get; set; } 
    // public List< Survey> Survey { get; set; } 
    //tried including these , can't set in my automappers 

, но я не могу видеть способ решить эту проблему.

ДОБАВЛЕНО:

Был указал Response Сущности, который следует

public class Response : Entity, IEquatable<Response> 
{ 
    [DataMember] 
    public string AnalyzeUrl { get; set; } 

    [DataMember] 
    public CollectionMode? CollectionMode { get; set; } 

    [DataMember] 
    public long? CollectorId { get; set; } 

    [DataMember] 
    public string CustomValue { get; set; } 

    //[DataMember] 
    //public Dictionary<string, string> CustomVariables { get; set; } 

    [DataMember] 
    public DateTime? DateCreated { get; set; } 

    [DataMember] 
    public DateTime? DateModified { get; set; } 

    [DataMember] 
    public string EditUrl { get; set; } 

    [DataMember] 

    [DatabaseGenerated(DatabaseGeneratedOption.None)] 
    public new long? Id { get; set; } 

    [DataMember] 
    public string IpAddress { get; set; } 

    //[DataMember] 
    //public Dictionary<string, object> LogicPath { get; set; } 

    //[DataMember] 
    //public Dictionary<string, object> Metadata { get; set; } 
    [DataMember] 
    public virtual List<object> PagePath { get; set; } 

    [DataMember] 
    public virtual List<ResponsePage> Pages { get; set; } 
    [DataMember] 
    public virtual List<ResponseQuestion> Questions { get; } 

    [DataMember] 
    public long? RecipientId { get; set; } 

    [DataMember] 
    public ResponseStatus? ResponseStatus { get; set; } 

    [DataMember] 
    public long? SurveyId { get; set; } 

    [DataMember] 
    public int? TotalTime { get; set; } 

    public bool Equals(Response other) 
    { 
     return Id == other.Id; 
    } 
} 
+0

В опросе может быть много страниц, но почему на странице может быть много опросов? –

+0

У вас есть объект Response случайно? Похоже, что имя отношения говорит о том, что проблема заключается в отношении объектов Response и Page. –

+0

У меня есть ответ Entity, Sorry - будет редактировать –

ответ

1

Марк Свойство Survey (от страницы) с, на самом деле вам нужно добавить новое свойство:

[ForeignKey("SurveyId")] 
[DataMember] 
public Survey Survey {get;set;} 

И список страниц из обзора:

[InverseProperty(nameof(Page.Survey))] 
+0

Я думаю, что понимаю иностранный ключ, но вы можете объяснить обратное свойство? –

+0

http://www.entityframeworktutorial.net/code-first/inverseproperty-dataannotations-attribute-in-code-first.aspx –

+0

Нужно ли мне [ForeignKey (SurveyID)] public long SurveyID –

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