Модель данных
Создадим три сущности — пост, категория и тег. У каждого поста может быть одна категория и несколько тегов.
[Table("Category")]
public class Category
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int CategoryId { get; set; }
public string Name { get; set; }
}
[Table("Tag")]
public class Tag
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int TagId { get; set; }
public string Name { get; set; }
public ICollection<Post> Posts { get; private set; }
public Tag()
{
this.Posts = new List<Post>();
}
}
[Table("Post")]
public class Post
{
[Key]
[DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity)]
public int PostId { get; set; }
public string Title { get; set; }
[Column(TypeName = "ntext")]
public string Body { get; set; }
public Category PostCategory { get; set; }
public ICollection<Tag> PostTags { get; set; }
public Post()
{
this.PostTags = new List<Tag>();
}
}
Для доступа к данным создаем контекст
public class PostContext : DbContext
{
public PostContext() : base("DefaultConnection") { }
public DbSet<Post> Posts { get; set; }
public DbSet<Category> Categories { get; set; }
public DbSet<Tag> Tags { get; set; }
}
Благодаря механизму Code First в Entity Framework, база создастся сама. read more