将数据建模为对象列表或具有所有者的每个对象

时间:2013-12-29 11:51:51

标签: c# asp.net-mvc-4

我正在为我正在构建的简单的catologueing应用程序创建我的模型。它记录的项目,其中每个项目可以有多个选项(itemOptions)。我的问题是,如果itemOptions存储了属于哪个项目,我最好有itemOptions列表吗?

方法1

public class Item
{
    public bool Active { get; set; }
    public string ItemCode { get; set; }
    public int ItemId { get; set; }
    public string Name { get; set; }
}

public class ItemOption
{
    public int ItemOptionId { get; set; }
    public string Name { get; set; }
    public string Barcode { get; set; }

    public virtual Item Item { get; set; }
    public int ItemId { get; set; }
}

方法2

public class Item
{
    public bool Active { get; set; }
    public string ItemCode { get; set; }
    public int ItemId { get; set; }
    public string Name { get; set; }
    public List<ItemOption> ItemOptions { get; set; }
}

public class ItemOption
{
    public int ItemOptionId { get; set; }
    public string Name { get; set; }
    public string Barcode { get; set; }
}

由于ItemOptions都属于一个项目,我认为方法2是我建模数据的更好方法,尽管两种方法都有效。哪个是存储的最佳方式?另外,如果我使用方法2,我如何找出ItemOption属于哪个Item?

1 个答案:

答案 0 :(得分:1)

这在很大程度上取决于您的域名,只有您可以知道哪种方式最好。

使用方法2 ,一个ItemOption可以属于许多不同的Items,其中方法1 这是父子关系,其中ItemOption只能属于一个Item