0

내가 많은 게시물에있을 수 엔티티 프레임 워크 4 CTP와 포스트 많은 태그을 가질 수 5 POCO 및 태그를 개인 블로그 응용 프로그램을 짓고 있어요. 내 질문은 다 대다 모델을 만들지, 아니면 조회 테이블을 만들지 여부입니다.Entity Framework 4 CTP 5 POCO - 다 대다 또는 조회 테이블?

처음에는 다 대다를 사용하려고했지만 새로운 태그가 선택된 상태에서 새 게시물이 게시 될 때마다 삽입 방법을 모릅니다. 어떻게해야할지 모르겠습니다. 태그가 게시물과 관련되어야한다. (와 태그 이름이 이미 존재하는 경우 새 태그를 삽입 할 것이다) 그래서

나는 다음과 같이 조회 테이블을 구축하려고 :

포스트

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<PostTagLookup> PostTagLookups { get; set; } 
} 

ta g

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 string FriendlyName { get; set; } 
    public virtual ICollection<PostTagLookup> PostTagLookups { get; set; } 
} 

PostTagsLookup

public class PostTagLookup 
{ 
    public int PostId { get; set; } 
    public int TagId { get; set; } 
} 

문제는 내가 EF가 조회 나는 포스트의 태그를 얻을 것이다 방법 테이블 (또는 수집을 처리하려고하는 방법을 잘 모르겠어요입니다 내가 태그를 선택할 때 포스트).

이 작업을 수행하는 방법에 대한 어떤 제안 : 그리고 아래의 코드로, 나는 PostTagLookup가 이드가 키가없는 말에 오류가있어? 고마워요!

답변

0

:

public class PostTagLookup 
{ 
    public int Id { get; set; } 
    public int PostId { get; set; } 
    public int TagId { get; set; } 

    public virtual Post Post { get; set; } 
    public virtual Tag Tag { get; set; } 
} 

최선의 방법은 아닐지도 모르지만 작동하고 있습니다. 모두에게 감사드립니다.

0

여러분의 모델은 PostTagLookup 엔티티에 ID 열/필드를 추가하는 것만으로 약간의 조정만으로도 작동한다고 생각합니다.

public class PostTagLookup 
{ 
    [Key] 
    [DatabaseGenerated(DatabaseGenerationOption.Identity)] 
    public int PostTagLookupId { get; set; } 

    //etc. 
} 

그러나, 나는 당신이 EF 처리하지 왜 확실하지 해요 그 자체에 대다을 기본. 예를 들어, 새 Post 객체가있을 때 컨텍스트에서 SaveChanges()을 호출하기 전에 연관된 태그를 인스턴스화 된 Post의 Tags 컬렉션에 추가하기 만하면됩니다. 이게 너에게 효과가 없니? 나는 지난 몇 일 동안 함께 고생하고 의도 한대로 조회 테이블로 가기로 결정하고, 조회 테이블에서, 또한 같은 포스트에 대한 참조 및 태그 모델이 한

+0

나는 many-to-many를 시도했지만 작동하지 않았다. (이것은 나의 원래의 질문이다 : http://stackoverflow.com/questions/4571188/entity-framework-4-many-to-many-insertion) ** The_Smallest ** 제안에 따라 객체와 관련된 무언가에 오류가 발생했습니다. 그렇다면'Id' 칼럼없이 조회 테이블을 사용해야한다는 또 다른 제안이 있습니다! – Saxman

관련 문제