바인딩을 구성하기 위해 Entity Framework와 유창한 API를 사용하고 있습니다. 내 두 단체는 다음과 같다 : 나는 기존의 테이블 스키마와 함께 일하고 있어요, 스키마에 RelativityActivity
테이블은 단순히 Matter
의 Id
열을 외부 키를 가지고두 엔티티간에 주체가 1 대 1의 관계를 구성하는 방법은 무엇입니까?
public class Matter
{
#region Properties
/// <summary>
/// Primary key
/// </summary>
public int Id { get; set; }
/// <summary>
/// Navigation: the most recent Relativity activity for the Matter
/// </summary>
public virtual RelativityActivity RelativityRecentActivity { get; set; }
#endregion
}
public class RelativityActivity
{
#region Properties
/// <summary>
/// Primary key
/// </summary>
public int Id { get; set; }
/// <summary>
/// Foreign key: the Matter that the Relativity Activity entry is associated with
/// </summary>
public Matter Matter { get; set; }
#endregion
}
. 따라서 Matter
은 관계에있는 주체이며 RelativityActivity
없이 존재할 수 있습니다. 하지만 RelativityActivity
은 Matter
없이는 존재할 수 없습니다.
나를 기다리는 동안, 예상대로 작동하도록 구성 할 수 없습니다. 나는 많은 답변을 읽었고, 각 글을 읽은 후에 유창한 API 바인딩을 조정합니다.하지만 나는 "관계의 주된 결론을 결정할 수 없습니다"에서 "잘못된 다중성으로 구성했습니다" .
나의 현재를 유창하게 구사 API 바인딩은 다음과 같이 다음 RelativityActivity
에 대한
modelBuilder.Entity<RelativityActivity>().HasRequired(m => m.Matter).WithRequiredDependent(m => m.RelativityRecentActivity).Map(m => m.MapKey("matter")).WillCascadeOnDelete(true);
하고, 다음 Matter
에 대한
modelBuilder.Entity<Matter>().HasOptional(m => m.RelativityRecentActivity).WithRequired(m => m.Matter);
.
Matter
바인딩이 없기 때문에 주 엔드 오류를 확인할 수 없기 때문에 관계에 두 개의 바인딩이 있습니다. 하지만 이제 다중성에 대한 오류가 발생합니다. 설명에 대한
편집 :
외래 키 열, RelativityActivity
테이블에서 Id
열 수 없습니다. 사실 matter
이라는 또 다른 열입니다. 내 바인딩에 Map
함수를 사용하여 이것을 지정하려고합니다.
인가'외국를 RelativityActivity.Id' 관계에 키를 입력하거나, 상대 키인 'RelativityActivity' 테이블에'RelativityActivity.MatterId'와 같은 두 번째 필드가 있습니까? 이것은 답변에 "중요"할 수 있습니다. –
아니요, 외래 키 열은 실제로 "문제"라는 테이블의 다른 열입니다. 제 바인딩에서'Map'을 사용하여 이것을 지정하고 있다고 생각합니다. 그것은 내 의도입니다. – Ryan