C# 实体框架自动连接

C# 实体框架自动连接,c#,asp.net-mvc,entity-framework,C#,Asp.net Mvc,Entity Framework,我认为我的问题的标题不太准确,所以我将尝试解释我的问题是什么 我有两个模型:文章模型和用户模型 public class Article { public int ID { get; set; } [Required] public string Title { get; set; } [Required] [DataType(DataType.MultilineText)] public string Content { get; set; }

我认为我的问题的标题不太准确,所以我将尝试解释我的问题是什么
我有两个模型:文章模型和用户模型

public class Article
{
    public int ID { get; set; }
    [Required]
    public string Title { get; set; }
    [Required]
    [DataType(DataType.MultilineText)]
    public string Content { get; set; }
    [Required]
    public User Author { get; set; }
    public int Likes { get; set; }
} 
public class User
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string Email { get; set; }
        public ICollection<Article> MyArticles { get; set; }
    }

我非常确定rails有这种可能性,我认为EF4.1也有这种可能性。

如果您的模型是
用户的实例,那么您可以在视图中使用以下内容:

foreach(var article in Model.MyArticles) {
    <p>article.Title</p>
    <p>article.Content</p>
    <p>article.Author.Name</p>
}
foreach(Model.MyArticles中的var文章){
第条.标题

第条.内容

文章作者姓名

}
首先加载用户和文章(如果使用延迟加载,可以跳过此步骤):

而不是在您的视图中传递用户列表:

foreach(var user in Model)
{
   <h2>@user.name</h2>
   foreach(var article in user.MyArticles) {   
      <p>@article.Title</p>   
      <p>@article.Content</p>   
      <p>@article.Author.Name</p>   
   }
}  
foreach(模型中的var用户)
{
@用户名
foreach(user.MyArticles中的var article){
@文章标题

@文章内容

@文章.作者.姓名

} }
我尝试了这一点,但它给了我这个错误\u CS1061:“System.Collections.Generic.IEnumerable”不包含“MyArticles”的定义,并且找不到接受“System.Collections.Generic.IEnumerable”类型第一个参数的扩展方法“MyArticles”\u这是因为您需要将单个用户传递到视图中。否则,您需要迭代模型中的用户,并更改我的代码以使用外部循环中的该用户。我得到一个“已经有一个与此命令关联的打开的DataReader,必须先关闭。”错误。有什么想法吗?好吧,我知道了!我需要在连接字符串中设置MultipleActiveResultSets=true.:D
foreach(var article in Model.MyArticles) {
    <p>article.Title</p>
    <p>article.Content</p>
    <p>article.Author.Name</p>
}
var users = context.Users
    .Include(u => u.MyArticles)                      
    .ToList();
foreach(var user in Model)
{
   <h2>@user.name</h2>
   foreach(var article in user.MyArticles) {   
      <p>@article.Title</p>   
      <p>@article.Content</p>   
      <p>@article.Author.Name</p>   
   }
}