2014-01-30 99 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