所有,感谢您的帮助,因为我从您那里得到了很多。
现在我在理解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;所以按数字长度我可以得到子级别并且除以得到完整的类别。 我能这样做吗? 谢谢。
答案 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。
此致 彼得