Entity framework EF数据库类别需要建议
谢谢你的帮助,我从你那里得到了很多 现在,我在理解C#,MVC4(EF:代码优先)以及特别是创建用于制作的模型方面遇到了问题 非线性模型:任务是从外部来源创建类别/子类别,我不知道类别和子类别的结构以及子类别的级别。它就像一棵分类树,最后让我们说说它的产品。 现在我做了书面工作,不知道如何编写代码 我认为应该有足够的两个模型类: 1.)类别 2)产品 二, 在类别中,我认为字段子中应该有2个数字。。比如说,对于10-99之间的firs类别,如果有子类别,它将变为1010或1110,直到子类别结束。由代码管理,我将从产品中的这个数字了解完整的树。而产品需要有这样的最终价值:从哪里来,分类树,找到所有的路回来 我不知道如何关联模型类;一个大菜鸟 我不确定我写的是否可以理解,如果需要更多的细节,我一定会添加它们 谢谢大家 编辑:要想弄清楚一点: 我认为我在数据库中需要的是产品线和类别。我想对类别和子类别使用同一个类,对产品使用一个类。所有参考资料应仅限于 “我来自哪里”,如数字。通过这个数字做数学,我应该得到完整的分类列表。例如:Entity framework EF数据库类别需要建议,entity-framework,categories,Entity Framework,Categories,谢谢你的帮助,我从你那里得到了很多 现在,我在理解C#,MVC4(EF:代码优先)以及特别是创建用于制作的模型方面遇到了问题 非线性模型:任务是从外部来源创建类别/子类别,我不知道类别和子类别的结构以及子类别的级别。它就像一棵分类树,最后让我们说说它的产品。 现在我做了书面工作,不知道如何编写代码 我认为应该有足够的两个模型类: 1.)类别 2)产品 二, 在类别中,我认为字段子中应该有2个数字。。比如说,对于10-99之间的firs类别,如果有子类别,它将变为1010或1110,直到子类别结束
Category1 := 10;
Category1_sub1:=1010;
Category1_sub2:=1011;
Category1_sub2_sub1:=101110;
Category2:= 11;
Category2_sub1:=1110;
类别等等。对于产品,仅参考类别中的最后一个子编号,例如101112101530;所以,通过数字长度,我可以得到子级别,用divide得到完整的类别。
我可以这样做吗?
谢谢 我不确定我是否正确理解了这个问题。但是如果你想把产品分成不同的类别,你可以先在EF代码中使用类似的东西
public class Category
{
[Key]
public int Id { get; set; }
public string CategoryName { get; set; }
public virtual Category ParentCategory { get; set; }
public virtual ICollection<Category> ChildCategories { get; set; }
public virtual ICollection<Product> Products { get; set; }
public Category()
{
this.ChildCategories = new HashSet<Category>();
this.Products = new HashSet<Product>();
}
}
public class Product
{
[Key]
public int Id { get; set; }
public string ProductName { get; set; }
public Category Category { get; set; }
}
// The database (DbContext) class
public class MyDb : DbContext
{
public DbSet<Category> Categories { get; set; }
public DbSet<Product> Products { get; set; }
}
public class Application
{
public Application()
{
MyDb db = new MyDb();
Category categoryOne = new Category { CategoryName = "Category One" };¨
Product productOne = new Product { ProductName = "Product One" };
productOne.Category = categoryOne;
db.Products.Add(productOne);
db.SaveChanges();
var productInCategory = db.Category.Where(x => x.CategoryName == "Category One").Include("Products").Products.ToList();
}
}
公共类类别
{
[关键]
公共int Id{get;set;}
公共字符串CategoryName{get;set;}
公共虚拟类别ParentCategory{get;set;}
公共虚拟ICollection子类别{get;set;}
公共虚拟ICollection产品{get;set;}
公共类别()
{
this.ChildCategories=new HashSet();
this.Products=newhashset();
}
}
公共类产品
{
[关键]
公共int Id{get;set;}
公共字符串ProductName{get;set;}
公共类别{get;set;}
}
//数据库(DbContext)类
公共类MyDb:DbContext
{
公共数据库集类别{get;set;}
公共数据库集产品{get;set;}
}
公共类应用程序
{
公共应用程序()
{
MyDb=新的MyDb();
Category categoryOne=新类别{CategoryName=“Category One”};(
Product productOne=新产品{ProductName=“Product One”};
productOne.Category=类别;
db.Products.Add(productOne);
db.SaveChanges();
var productInCategory=db.Category.Where(x=>x.CategoryName==“Category One”).Include(“Products”).Products.ToList();
}
}
我希望它能推动你的项目向前发展。
阅读是一个好的开始
问候,,
彼得嗨,谢谢你的支持。我不完全理解代码,将向前看。也许您可以添加一些注释,以及如何在代码中使用它。以及数据库的代码外观。再次感谢。
Category1 := 10;
Category1_sub1:=1010;
Category1_sub2:=1011;
Category1_sub2_sub1:=101110;
Category2:= 11;
Category2_sub1:=1110;
public class Category
{
[Key]
public int Id { get; set; }
public string CategoryName { get; set; }
public virtual Category ParentCategory { get; set; }
public virtual ICollection<Category> ChildCategories { get; set; }
public virtual ICollection<Product> Products { get; set; }
public Category()
{
this.ChildCategories = new HashSet<Category>();
this.Products = new HashSet<Product>();
}
}
public class Product
{
[Key]
public int Id { get; set; }
public string ProductName { get; set; }
public Category Category { get; set; }
}
// The database (DbContext) class
public class MyDb : DbContext
{
public DbSet<Category> Categories { get; set; }
public DbSet<Product> Products { get; set; }
}
public class Application
{
public Application()
{
MyDb db = new MyDb();
Category categoryOne = new Category { CategoryName = "Category One" };¨
Product productOne = new Product { ProductName = "Product One" };
productOne.Category = categoryOne;
db.Products.Add(productOne);
db.SaveChanges();
var productInCategory = db.Category.Where(x => x.CategoryName == "Category One").Include("Products").Products.ToList();
}
}