2014-01-30 91 views
0

所有和感谢您的帮助,因为我从你身上得到了很多。EF数据库类别需要建议

现在我在理解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; } 
} 

在类别,我认为应该有在现场分2号..让说的冷杉类别从10-99,如果有子类别就变成1010,或1110,所以直到小类结束。由代码管理,我将从产品中的这个数字中知道完整的树。并且产品需要具有这个最终值:where_iam_from,类别树,以找回所有的方式。

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

我不知道如果我写的可以理解,如果需要更多的细节,我一定会添加它们。

谢谢大家。

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

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

等等。而对于产品,只能参考类别中的最后一个子编号,例如101112101530;所以通过数字的长度我可以得到子级别和分割得到完整的类别。 我可以这样做吗? 谢谢。

回答

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

Regards, Peter

+0

嗨,感谢您的支持。我不完全理解代码,将向前看。也许你可以添加一些评论以及它如何在代码中使用。以及如何通过代码查看数据库。再次感谢。 – Dovydas

+0

谢谢,这个工程。 – Dovydas