Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Entity framework EF数据库类别需要建议_Entity Framework_Categories - Fatal编程技术网

Entity framework EF数据库类别需要建议

Entity framework EF数据库类别需要建议,entity-framework,categories,Entity Framework,Categories,谢谢你的帮助,我从你那里得到了很多 现在,我在理解C#,MVC4(EF:代码优先)以及特别是创建用于制作的模型方面遇到了问题 非线性模型:任务是从外部来源创建类别/子类别,我不知道类别和子类别的结构以及子类别的级别。它就像一棵分类树,最后让我们说说它的产品。 现在我做了书面工作,不知道如何编写代码 我认为应该有足够的两个模型类: 1.)类别 2)产品 二, 在类别中,我认为字段子中应该有2个数字。。比如说,对于10-99之间的firs类别,如果有子类别,它将变为1010或1110,直到子类别结束

谢谢你的帮助,我从你那里得到了很多

现在,我在理解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();

    }

}