Entity Framework 4, POCO를 사용하는 다 대 다 삽입 프로세스에 익숙하지 않습니다. 게시물, 댓글 및 태그의 3 개 테이블이있는 블로그가 있습니다. 포스트 많은 태그을 가질 수 있으며, 태그는 많은 게시물에있을 수 있습니다. 여기에 포스트 및 태그를 모델입니다 : 나는 새 게시물을 추가 해요 이제엔티티 프레임 워크 4 다 대다 삽입?
public class Tag
{
public int Id { get; set; }
[Required]
[StringLength(25, ErrorMessage = "Tag name can't exceed 25 characters.")]
public string Name { get; set; }
public virtual ICollection<Post> Posts { get; set; }
}
public class Post
{
public int Id { get; set; }
[Required]
[StringLength(512, ErrorMessage = "Title can't exceed 512 characters")]
public string Title { get; set; }
[Required]
[AllowHtml]
public string Content { get; set; }
public string FriendlyUrl { get; set; }
public DateTime PostedDate { get; set; }
public bool IsActive { get; set; }
public virtual ICollection<Comment> Comments { get; set; }
public virtual ICollection<Tag> Tags { get; set; }
}
, 내가 할 수있는 올바른 방법 일 것입니다 무슨 확실하지 않다. 나는 내가이 게시물 (이 부분은 이미 완료)에 대한 여러 태그를 선택할 수있는 텍스트 상자가있을 것이라고 생각하고 있는데, 내 컨트롤러에서 태그가 이미 존재하는지 확인하고, 그렇지 않다면 확인합니다. 새 태그를 삽입합니다. 그러나 EF 용으로 만든 모델을 기반으로 PostsTags 테이블을 만들지 않겠습니까? 아니면 태그와 포스트 테이블을 만들고 둘 사이에 링크를 만듭니 까?
게시물을 어떻게 삽입하고 태그를 해당 게시물로 설정합니까? 그냥 newPost.Tags = Tags
입니까? (태그는 선택된 태그이며, 이미 존재하는지 확인해야합니까?) _post.Add(newPost);
과 같은 태그가 있습니까?
감사합니다.
안녕하세요 Saxman, 맞춤형 초기화 프로그램을 설정하고 있습니까? (DbDatabase.SetInitializer) 모델을 변경하는 경우 EF가 데이터베이스를 모델링하여 모델을 데이터베이스와 일치 시키도록해야합니다. 이것은 당신의 Many-to-Many가해야하는 것처럼 작동하지 않는 이유가 될 수 있습니다. 이 작업을 수행하는 방법을 알고 싶다면 알려주십시오! IMHO, 당신은 당신의 도메인 모델에서 조회 엔티티를 정말로 정의해서는 안됩니다. EF는 당신을 위해이 일을하고 그것을 투명하게 할 것입니다. – Paul
안녕하세요 Paul, EF에서'DropCreateDatabaseIfModelChanges'를 설정 했으므로, 다 대 다 관계가 작동하는지 다시 한 번 확인해 보겠습니다. 감사. – Saxman