首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C#实体框架与数量的多对多关系

问C#实体框架与数量的多对多关系
EN

Stack Overflow用户
提问于 2013-11-07 00:44:47
回答 1查看 317关注 0票数 0

我正在设计一个数据库来保存办公设备的库存,但在很多情况下,一个房间将包含一个相同项目的倍数,就像一个会议室有3个相同的电视屏幕。存储序列号和诸如此类并不重要;只有数量才重要。

我希望避免重复输入相同的信息(电视、等离子、1920x1080、50“等等),所以我想要的只是一个电视表,其中包含每种型号之一,然后将这些条目链接到房间表中的一个特定条目,每次输入一次。结果是这样的:

代码语言:javascript
复制
public class Television
{
    public int ID { get; set; }

    // ...

    // keep track of rooms containing this model
    public virtual ICollection<Room> Rooms { get; set; }
}

public class Room
{
    public int ID { get; set; }

    // ...

    public virtual ICollection<Television> Televisions { get; set; }
}

问题是,通过这种设置,您实际上只能将电视机表的每一行链接一次到房间表的一行,而我想将其链接3次。做这件事最好的方法是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-11-07 01:35:47

如果您想要使电视和房间有许多到许多关系,您需要使用连接表为他们。例如,创建连接表调用TelevisionRooms,并在连接表中创建quantity属性。它应该能解决这个问题。见下文:

代码语言:javascript
复制
 public class Television
    {
        public int TelevisionID { get; set; }
        public int ModelID { get; set; }

        public virtual ICollection<Room> Rooms { get; set; }
    }

    public class Room
    {
        public int RoomID { get; set; }
        //
        public virtual ICollection<Television> Televisions { get; set; }

    }

    public class TelevisionRoom
    {
        public int TelevisionID { get; set; }
        public int RoomID { get; set; }
        public int Quantity { get; set; }
    }

    public class Model
    {
        public int ModelID { get; set; }
        public string ModelName { get; set; }
    }

希望能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19825875

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档