2013-08-21 43 views
0

在研究ASP.NET MVC是否适合我的下一个网站时,我遇到了一个烦人的问题。与ASP.NET MVC的过度复杂的多对多关系

我从第2版开始就关注ASP.NET MVC,它变得更好了。例如,现在使用代码优先进行实体框架中的迁移相当容易,而这往往是一件麻烦事。
这意味着我现在可以在半小时内首先运行数据库迁移和代码(因为我通常不记得涉及的步骤,我必须遵循我写的指南)。

现在,我很早就在数据库中获得了实体(例如标签和帖子)之间的多对多关系,而且我发现通过MVC框架获得这种关系非常复杂! Example from asp.netExample from mikesdotnetting

它涉及特殊的方法来检索不是框架固有部分的关系数据。

治疗多对多关系真的没有更好/更简单的方法吗?

回答

2

你应该虚拟键单词添加到许多端口

public class Post 
{ 
    [Key] 
    public int ID { get; set; } 
    public string Title { get; set; } 
    public virtual ICollection<Tag> Tags {get;set;} 
} 

public class Tag 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public virtual ICollection<Post> Posts {get;set;} 
} 
+0

是。也许我必须澄清,这不是导致我出现问题的部分。我的问题是通过控制器关联这种关系,根据我所包含的链接,您需要创建一个特殊功能,将两者结合起来(发布和标签)。 – kasperhj

+1

你应该可以通过'Post.Tags'和'Tag.Posts'获得链接的集合。如果这些集合是空的,则可能需要使用PostsIQuerriable.Include(x => x.Tags)'(和vica)来引导数据。如果在视图中访问此数据时出现无限循环错误,则可能需要[ScriptIgnore]标记。 – Sam