簡體   English   中英

一對多關系中的多重性錯誤

[英]Multiplicity error in one to Many Relationship

我有多個實體嵌套在一起,嘗試添加調查類時出現錯誤

違反多重性約束。 關系“ SurveyMonkeyAPIv3.Response_Pages”的角色“ Response_Pages_Source”具有多重性1或0.1.1。

由於它們都繼承實體

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;
    }
}

調查實體

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;
    }
}

和頁面

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

但我看不到解決此問題的方法。

添加:

指向響應實體,隨后

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;
    }
}

使用標記Survey屬性(來自Page),實際上您需要添加一個新屬性:

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

以及來自Survey的頁面列表,其中包括:

 [InverseProperty(nameof(Page.Survey))]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM