EF数据库类别需要建议

时间:2014-01-30 23:57:10

标签: entity-framework categories

所有,感谢您的帮助,因为我从您那里得到了很多。

现在我在理解C#,MVC4(EF:代码优先)和特别创建模型时遇到了问题 非线性模型:任务是从外部来源制作类别/子类别,其中我不知道类别和子类别的结构以及子级别。它就像类别树一样,最后可以说它的产品。 现在我做了纸上作业,不知道如何编码。:

在我看来应该有足够的两个模型类: 1.)类别 2.)产品

1. like this.



public class categories
 {
   double sub { get; set; }
   tring name { get; set; }
   link { get; set; }
   int colum { get; set; }
 }

2

public class products {    
string ManufacturerName { get; set; }
        double where_iam_from { get; set; }
        string ManufacturerPartNumber { get; set; }
        string Description { get; set; }
}

在类别中,我认为在字段sub中应该有2个数字..让我们说10-99的第一类,如果有子类别它变为1010或1110,所以直到子类别结束。由代码管理,我将从产品中的这个数字知道完整的树。并且产品需要具有此最终值:where_iam_from,category tree,以便找回所有方法。

我不知道如何关联模型类;一个大新手。

我不确定我是否可以理解,如果需要更多细节我肯定​​会添加它们。

谢谢大家。

编辑:要清楚一点:  我认为我在数据库中需要的是产品和类别。我想对类别和子类别使用相同的类,对产品使用一个类。所有参考应该只是 'where_iam_from',例如数字。通过这个数字做数学我应该得到完整的类别列表。例如:

Category1 := 10;
  Category1_sub1:=1010;
  Category1_sub2:=1011;
    Category1_sub2_sub1:=101110;
Category2:= 11;
  Category2_sub1:=1110;

依此类推。而对于产品只能参考类别中的最后一个子号,可以说101112101530;所以按数字长度我可以得到子级别并且除以得到完整的类别。 我能这样做吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

我不确定我是否正确理解了这个问题。但是如果你想将产品划分为类别,你可以先使用类似的东西来代替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();

    }

}

我希望它能让你在项目中前进。 一个好的开始是阅读http://msdn.microsoft.com/en-us/data/jj193542

此致 彼得