많은 관계 삽입 중복 많은 나는 다음과 같이 내가이 개 POCO 클래스를 엔티티 프레임 워크 5.엔티티 프레임 워크 - 부모 테이블
를 사용하여 다 대다 관계로 간단한 삽입 할 노력하고있어. 엔티티 프레임 워크는 다음 세부 사항이 ArticleMap 코드에 규정 된의 세 번째 매핑 테이블과 함께 두 종류와 제 테이블을 생성합니다
public class CategoryMap : EntityTypeConfiguration<Category>
{
public CategoryMap()
{
this.ToTable("Categories");
this.HasKey(x => x.ID);
this.Property(x => x.Title).IsRequired().HasMaxLength(255);
}
}
public class ArticleMap : EntityTypeConfiguration<Article>
{
public ArticleMap()
{
this.ToTable("Articles");
this.HasKey(x => x.ID);
this.HasMany(x => x.Categories)
.WithMany(x => x.Articles)
.Map(x =>
{
x.ToTable("MapArticleCats");
x.MapLeftKey("CategoryID");
x.MapRightKey("ArticleID");
});
this.Property(x => x.Title).IsRequired().HasMaxLength(255);
this.Property(x => x.Content).IsRequired().HasMaxLength(4000);
}
}
public class Category
{
public virtual string Title { get; set; }
public virtual DateTime EntryDate { get; set; }
public virtual DateTime LastUpdated { get; set; }
public virtual ICollection<Article> Articles { get; set; }
}
public class Article
{
public virtual string Title { get; set; }
public virtual string Content { get; set; }
public virtual DateTime EntryDate { get; set; }
public virtual DateTime LastUpdated { get; set; }
public virtual ICollection<Category> Categories { get; set; }
}
그리고 다음 유창하게 API를 매핑 코드
... (MapArticleCats), SQL Server에서 다음과 같습니다.은 articleID - INT
카테고리 ID는
다음 코드 (몇 줄을 주거나 걸릴) 내 컨트롤러에있는 문서에 카테고리 추가를 -int.
IEnumerable<Category> GetCats = CategoryRepository.GetAll();
//DO SOME CODE TO FIGURE WHICH CATEGORIES I NEED.
IEnumerable<Category> Categories = InferCategoriesFromPostedData(Model.Categories, GetCats);
foreach (Category c in Categories)
{
Article.Categories.Add(c);
}
삽입시 이상한 동작이 나타나는 것 같습니다. 이 카테고리 테이블 (DUPLICATE)에 새로운 카테고리를 삽입하고 또한 상기 테이블 MapArticleCats 올바른은 articleID (대신에 원래의 ID)가 새롭게 생성 된 카테고리 ID를 삽입한다. 내가 잘못 갔어요 곳
은 사람이 볼 수 있을까요? 나는 (대규모 유죄 이전 것들 ...)이 문서를 제출하기 전에했던해야하는지