[英]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.