C# 处理';多对一';MVC4ASP.NET中的关系

C# 处理';多对一';MVC4ASP.NET中的关系,c#,asp.net,asp.net-mvc,linq,asp.net-mvc-4,C#,Asp.net,Asp.net Mvc,Linq,Asp.net Mvc 4,我有一个根据我的模型创建的数据库,它与下图非常相似: 然而,让它实际用于CRUD操作有点不同:( 因此,我采取了处理“正常”表格的方法,并试图使其正常工作,但我做不到 这是我的名字: public class ArticleEntities : DbContext { public DbSet<AgeGroup> AgeGroups { get; set; } public DbSet<Disabilities> Disabilitiess { get;

我有一个根据我的模型创建的数据库,它与下图非常相似:

然而,让它实际用于CRUD操作有点不同:(

因此,我采取了处理“正常”表格的方法,并试图使其正常工作,但我做不到

这是我的名字:

public class ArticleEntities : DbContext
{
    public DbSet<AgeGroup> AgeGroups { get; set; }
    public DbSet<Disabilities> Disabilitiess { get; set; }
    public DbSet<StrategyType> StrategyTypes { get; set; }
    public DbSet<Article> Articles { get; set; }
    public DbSet<UserProfile> Profiles { get; set; }
    public DbSet<DataToArticle> DataToArticles { get; set; }


    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
        modelBuilder.Conventions.Remove<OneToManyCascadeDeleteConvention>();
    }
}
我认为需要做什么,但不知道如何做

在ArticleController中,我知道我必须将其他表中的所有附加信息添加到其中。我曾尝试使用Linq,但没有用,但我非常确定可以这样做

同样在文章创建视图中,我必须能够从其他表访问下拉列表中显示的信息


如果我没有多对一关系表lol,我可以做到这一切,它真的改变了我的一切。

如果你首先使用EF代码,只是想找一个基本的例子来开始MVC中的一对多关系实现,那么网上有很多例子。

我想这是让你ff是指将所有关系放在一个表中的一行中。根据相关类型是否真的需要是实体或仅仅是值,您可以使用两种不同的方法来处理它。如果有简单的值,那么您可以创建一个辅助表来旧用每种类型的值。在这个表中作为外键的项目id以及与之关联的值。这就是我将如何建立一对多关系的方法

如果关联的值本身是实体(在我看来,如果它们是实体,那么它将不仅仅由一个id和一个名称组成),则每个实体类型都有一个连接表,其键由项目id和实体id组成。您真正要建模的是项目和每个实体类型之间的多对多关系

我假设第一种情况是您真正想要的。在您的文章中,您将具有年龄组、残疾和策略类型的属性

public ICollection<AgeGroup> AgeGroups { get; set; }
public ICollection<Disability> Disabilities { get; set; }
public ICollection<StrategyType> StrategyTypes { get; set; }

一对多问题与ASP.NET MVC无关。所有ASP.NET MVC都是解决方案的交付机制。在控制台应用程序中可能会遇到同样的问题。顺便说一句,我们缺少的是您用于数据访问的内容。实体框架?Linq到SQL?我们需要查看您的实际控制器代码d无论你使用什么代码连接到数据库。而且,听起来你需要我们为你创建这个页面,这是一个很高的要求。这种态度,我没有说问题出在ASP.NET上……我也没有要求别人帮我做。我找不到任何东西(在研究的8小时内)这是在线的,与此相关,我只需要洞察。我可以轻松扭转这一局面,只需为每个类别传递一个值,但这是令人满意的。我想重复和超越。只需要资源或任何洞察。我们需要查看您的控制器代码。当您撤回实体时,会出现什么问题?
    public virtual AgeGroup AgeGroup { get; set; }

    public virtual Disabilities Disabilities { get; set; }

    public virtual StrategyType StrategyType { get; set; }
public ICollection<AgeGroup> AgeGroups { get; set; }
public ICollection<Disability> Disabilities { get; set; }
public ICollection<StrategyType> StrategyTypes { get; set; }
public class AgeGroup
{
     public int Id { get; set; }
     public int ArticleId { get; set; }
     public string AgeName { get; set; }

     public Article Article { get; set; }
}