【问题标题】:EF database categories need suggestionsEF 数据库类别需要建议
【发布时间】:2014-01-30 23:57:10
【问题描述】:

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

现在我在理解 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,直到子类别结束。由代码管理,我会从产品中的这个数字知道完整的树。而product需要有这个end value: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;所以通过数字长度我可以得到子级别,并且可以得到完整的类别。 我可以这样做吗? 谢谢。

【问题讨论】:

    标签: entity-framework categories


    【解决方案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

    问候, 彼得

    【讨论】:

    • 您好,感谢您的支持。我不完全理解代码,将向前看。也许您可以添加一些 cmets 以及它在代码中的使用方式。以及数据库应该如何通过代码查看。再次感谢。
    猜你喜欢
    • 2014-10-22
    • 2019-06-22
    • 2016-12-16
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 2014-09-26
    相关资源
    最近更新 更多