我正在研究我的重大项目。我遇到了一个问题,我有很多关系:
这是我的代码......
public class BlogPost
{
public int Id { get; set; }
public string Text { get; set; }
public ICollection<User> Users { get; set; }
}
public class Tag
{
public int Id { get; set; }
public string TagName { get; set; }
public ICollection<User> Users { get; set; }
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public ICollection<Tag> Intrests { get; set; }
public ICollection<BlogPost> BlogPosts { get; set; }
}
如果我使用上面的代码,我会得到预期的架构。即 我有五张桌子。用户,BlogPost,标签,TagUser,UserBlogPost
用户仅包含:Id,Name和Age。 TagUser和UserBlogPost包含User的主键及其自己的表,以及它们之间创建多对多的关系。
如果我为My all Navigation属性显式创建外键属性,如下所示:
public class BlogPost
{
public int Id { get; set; }
public string Text { get; set; }
public int UserId { get; set; }
public ICollection<User> Users { get; set; }
}
public class Tag
{
public int Id { get; set; }
public string TagName { get; set; }
public int UserId { get; set; }
public ICollection<User> Users { get; set; }
}
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public int TagId { get; set; }
public ICollection<Tag> Intrests { get; set; }
public int BlogPostId { get; set; }
public ICollection<BlogPost> BlogPosts { get; set; }
}
我得到了不同的结果。 这里用户表包含:Id,Name,Age和TagId,BlogPostId。 和Tag和BlogPost表包含引用User表的外键。 它也有TagUser和UserBlogPost表。
因此,如果我不在My Classes中创建外键属性,那么是否存在任何问题。我该如何处理这种情况? 请帮忙......