与ASP.NET MVC一对多和多对多关系和脚手架混淆
正如标题所暗示的,我真的很挣扎。我知道脚手架功能并不完全支持这些开箱即用的关系,但我似乎无法让一个相当常见的场景正常工作。我首先使用代码库模式。一些代码与ASP.NET MVC一对多和多对多关系和脚手架混淆,asp.net,asp.net-mvc,entity-framework,entity,repository-pattern,Asp.net,Asp.net Mvc,Entity Framework,Entity,Repository Pattern,正如标题所暗示的,我真的很挣扎。我知道脚手架功能并不完全支持这些开箱即用的关系,但我似乎无法让一个相当常见的场景正常工作。我首先使用代码库模式。一些代码 public class Product { [Key] [DatabaseGenerated(DatabaseGeneratedOption.Identity)] public int Id { get; set; } public string Sku { get; set; } public str
public class Product
{
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string Sku { get; set; }
public string Name { get; set; }
public decimal PricePerUnit { get; set; }
public bool Available { get; set; }
public string Description { get; set; }
public int QuantityPerCarton { get; set; }
public int? DisplayOrder { get; set; }
public ICollection<Category> CategoryList { get; set; }
}
public class Category
{
public int Id { get; set; }
public int? ParentCategoryId { get; set; }
public string Name { get; set; }
public string UrlName { get; set; }
public int? DisplayOrder { get; set; }
public bool Visible { get; set; }
public virtual ICollection<Product> Products { get; set; }
}
所以我想要两个对象之间的多对多关系。第一个问题。一旦我添加虚拟集合,我就会得到“支持“上下文”上下文的模型自数据库创建以来已更改”。即使在执行迁移等操作之后,也会发生这种情况
第二,我不太明白一旦这样做了,如何将这些列表放到视图中。似乎没有一个完美的资源来解释这一点。有谁能对这一点或端到端的样本提供更具体的说明吗
这应该很简单
谢谢我在您提到的场景中使用了EF,过去没有出现任何问题。您可以在官方网站上找到一个关于使用EF加载相关资源的非常好的教程。您还可以在那里找到有关第一个问题的更多信息,该问题看起来与迁移有关。确定解决了它。asp.net网站确实有所帮助。我的错误是,我没有在应用程序的正确层上进行迁移,因此我的多对多表从未被创建。啊 谢谢,我肯定已经用过了,但是我发现它并没有真正涵盖多对多,如果有的话。看他们的例子,我甚至不理解Enrollments类是如何使用的,并且在迁移过程中没有生成任何数据库表。那么,这种关系在哪里?我见过其他例子,在ModelCreating的上下文中对其进行管理,但这些示例似乎很旧,我想知道是否有更好/更新的方法来实现这一点?