현재 작업중인 프로젝트의 모델을 조정하면 벽에 부딪혀 볼 수없는 것 같습니다. 오류가 생겼어. 다음과 같이왜 다음 코드를 얻을 수 없습니까? 다음 코드를 사용하여 원리의 끝을 ... 오류로 판별 할 수 없습니다.
이 구성됩니다 내가 두 클래스의 사이에 두 클래스의
public class CorePage : BaseClass
{
public CorePage()
{
this.PageContent = new HashSet<PageContent>();
this.PageAliases = new HashSet<PageAlias>();
this.isEditable = true;
}
public string DisplayLabel { get; set; }
public bool isEditable { get; set; }
public int? ParentPageId { get; set; }
public virtual CorePage ParentPage { get; set; }
public int TemplateId { get; set; }
public virtual Template Template { get; set; }
public int DefaultPageAliasId { get; set; }
public virtual PageAlias DefaultPageAlias { get; set; }
public virtual ICollection<PageAlias> PageAliases { get; set; }
public virtual ICollection<PageContent> PageContent { get; set; }
}
그리고
public class PageAlias : BaseClass
{
public PageAlias()
{
}
public string Alias { get; set; }
public int PageId { get; set; }
public virtual CorePage Page { get; set; }
}
관계를 맺고 있습니다.
Unable to determine the principal end of the 'Core.DataContext.PageAlias_Page' relationship. Multiple added entities may have the same primary key.
그리고 내가 놓친 것을 발견하는 것 캔트 :
public class CorePageConfiguration : EntityTypeConfiguration<CorePage>
{
public CorePageConfiguration()
{
HasOptional(cp => cp.ParentPage).WithMany().HasForeignKey(cp => cp.ParentPageId).WillCascadeOnDelete(false);
HasRequired(p => p.DefaultPageAlias).WithRequiredDependent().WillCascadeOnDelete(false);
}
}
그리고
public class PageAliasConfiguration : EntityTypeConfiguration<PageAlias>
{
public PageAliasConfiguration()
{
Property(pa => pa.Alias).IsRequired().HasMaxLength(500);
HasRequired(pa => pa.Page).WithMany(p => p.PageAliases).HasForeignKey(pa => pa.PageId).WillCascadeOnDelete(false);
}
}
문제는이 오류가 계속됩니다.
도움을 주시면 감사하겠습니다.
감사하는 일대 한 (그리고 일대일) 관계로
공유 기본 키 연결을 통해 귀하의 요점을 봅니다. .WithMany()와의 관계 설정에 관해서는 조금 해킹 된 것처럼 보이지만 CorePage 측에만 탐색 속성이있는 한 아프지 않을 것입니다. 나는 이것을 시험 할 것이고 모든 체크 아웃이 대답으로 표시되면 체크 할 것이다. 감사합니다. . – Drauka
defaultpagealias가 pagealias 컬렉션의 개체라고 가정합니다. 제안 된 솔루션은 데이터베이스를 작성하지만 예상대로 수행하지 않습니다. 추가 도움 없이도 쉽게 얻을 수 있습니다. 그것을 작동하게하려면 내가 제어 할 수 있는지 확실하지 않은 corepage 객체를 저장할 때 컬렉션에 defaultpagealias 객체를 추가해야합니다. 아마도 영리한 방법으로 이것을 할 수있는 방법이 있지만 지금은 익숙하지 않은 방법입니다. 귀하의 도움에 감사드립니다. – Drauka