1
부모 및 자식 열을 Element_ID 및 Element_ID1 대신 의미가있는 이름으로 지정하려고합니다.자체 참조 가상 속성의 열 이름 지정
요소 테이블은 문제없이 생성되지만 두 번째 테이블은 열 이름을 업데이트하려고합니다.
부모 속성 감속 위에 [Column("ParentID")]
속성을 추가하려고했지만 생성 된 테이블에 영향을주지 않습니다.
엔티티 클래스 마이그레이션
CreateTable(
"dbo.ElementElements",
c => new
{
Element_ID = c.Guid(nullable: false),
Element_ID1 = c.Guid(nullable: false),
})
.PrimaryKey(t => new { t.Element_ID, t.Element_ID1 })
.ForeignKey("dbo.Elements", t => t.Element_ID)
.ForeignKey("dbo.Elements", t => t.Element_ID1)
.Index(t => t.Element_ID)
.Index(t => t.Element_ID1);
내가 원하는 나는 그런
public class Hierarchy
{
public Guid ID { get; set; }
public virtual Guid ParentID { get; set; }
public virtual Element Parent { get; set; }
public virtual Guid ChildID { get; set; }
public virtual Element Child { get; set; }
}
로 두 번째 개체를 사용하는 경우 내가 두 번째 테이블 출력을 할 수 생성 된
public class Element
{
public Guid ID { get; set; }
public string Title { get; set; }
public int Status { get; set; }
public virtual List<Element> Parent { get; set; }
public virtual List<Element> Child { get; set; }
}
다음 생성 스크립트를 생성했습니다
CreateTable(
"dbo.Hierarchies",
c => new
{
ID = c.Guid(nullable: false),
ParentID = c.Guid(nullable: false),
ChildID = c.Guid(nullable: false),
})
.PrimaryKey(t => t.ID)
.ForeignKey("dbo.Elements", t => t.ParentID)
.ForeignKey("dbo.Elements", t => t.ChildID)
.Index(t => t.ParentID)
.Index(t => t.ChildID);
그래서 하나의 엔티티 클래스로 원하는 열 이름을 사용하여 두 번째 테이블을 생성 할 수 있습니까? 내가 제대로 질문을 이해한다면
내가 원했던 바로 고마워요, 고마워!. 부가 메모에서 ElementMap 테이블에 추가 속성을 추가하는 방법이 있습니까? 마찬가지로 요소 엔터티에 부모/자식 공개 virutal 목록을 가지고뿐만 아니라 위치 속성을 포함합니까? – Jerry
@ Jarek : 아니요. 맵/조인 테이블에 추가 속성을 원하면 더 이상 다 대다 관계를 사용할 수 없습니다. 대신 조인 테이블을 추가 엔터티로 노출 한 다음 두 개의 일대 다 관계를 만들어야합니다. 여기에 예제가 있습니다 : http://stackoverflow.com/a/7053393/270591 – Slauma
고마워요, 그것은 제가 기대했던 것과 같습니다. 내 원래의 질문에 언급 된 문제는 관계에 대한 더 많은 정보가 필요함을 진화 시켰지만, 당신의 솔루션은 미래에 확실히 도움이 될 것입니다. 이 링크를 가져 주셔서 감사 드리며 다음 단계에 대해 알려 드리겠습니다. – Jerry