我将使用EF Code First创建数据库和表。
每个帖子属于一个类别,可以标记许多标签。在Post和Category之间,关系是多对一的,Post和Tag之间的关系是多对多的。
以下是我的代码:
public class BlogContext : DbContext
{
public DbSet<Post> Posts { get; set; }
public DbSet<PostTagMap> PostTags { get; set; }
public DbSet<Category> Categorys { get; set; }
public DbSet<Tag> PostTags { get; set; }
}
public class Post
{
public int Id { get; set; }
public string Title { get; set; }
public string ShortDescription { get; set; }
public string Meta { get; set; }
public string UrlSlug { get; set; }
public bool Published { get; set; }
public DateTime PostedOn { get; set; }
public DateTime? Modified { get; set; }
public Category Category { get; set; }
public IList<Tag> Tags { get; set; }
}
public class PostTagMap
{
}
public class Category
{
public int Id { get; set; }
public string Name { get; set; }
public string UrlSlug { get; set; }
public string Description { get; set; }
public IList<Post> Posts { get; set; }
}
public class Tag
{
public int Id { get; set; }
public string Name { get; set; }
public string UrlSlug { get; set; }
public string Description { get; set; }
public IList<Post> Posts { get; set; }
}
以下是EF新人的问题:
PostTagMap
生成代码?答案 0 :(得分:0)
您的数据模型看起来很好。我会用那个。对于你的问题:
我是否为PostTagMap生成代码? 你想要生成什么样的代码?如果你的意思是,你为它定义任何代码。你真的不需要,因为你已经在post和tag之间定义了一个关系。但是,如果您认为查询更容易,可以。
如何将表之间的关系应用于我的代码? 这种关系已经存在。如类别有很多帖子,帖子属于某个类别。
我总是看到人们此时添加DataAnnotation?因为许多在线样本在没有这一步骤的情况下创建了数据库, 注释用作交叉问题,例如验证,数据类型,数据长度等。