앞으로 프로젝트에 EF를 사용하는 것에 대한 이해를 얻으려고합니다.EF6 및 비즈니스 로직 레이어
현재이 코드 첫 번째 코드가 있습니다
public class Blog
{
public int BlogId { get; set; }
public string Name { get; set; }
public virtual List<Post> Posts { get; set; }
}
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public int BlogId { get; set; }
public virtual Blog Blog { get; set; }
}
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }
}
이 데이터베이스와 테이블을 생성하고 난/블로그를 추가 문제를 게시하지 않습니다 할 수있었습니다. 그러나 나는 EF 코드의 첫 번째 접근 방법을 구조화하는 방법에 대해 혼란 스럽다.
Blog
과 Post
모두 BloggingContext
에 대한 참조가 있고 고유 한 가져 오기/추가/업데이트 방법이 있습니까?
실제로 데이터 가져 오기/추가/업데이트를 수행하고 단순히 엔티티 개체를 반환하는 별도의 BlogManager
/PostManager
클래스를 생성해야합니까?
get/add/update 메서드를 포함하는 Blog
/Post
을 상속하는 별도의 클래스를 만들어야합니까?
코드 예제에서 필요한 모든 것이 필요한만큼 수행해야한다고 생각합니다. DbContext의 DbSet에는 엔티티를 추적하는 메커니즘이 있습니다. 'dbContext.SaveChanges()'를 호출 할 때 모든 추적 된 변경 사항은 Datebase로 이동합니다. –
일반적으로'IBlogRepository' 및'IPostRepository' 인터페이스와'BloggingContext'를 감싸는 해당 구현을 생성하려고합니다. 그렇게하면 비즈니스 로직 클래스에서 ORM의 실제 구현과 사용을 추상화 할 수 있습니다. –