【发布时间】:2014-07-11 10:51:12
【问题描述】:
我在实体框架中使用代码优先方法。
我正在使用两个类:Item 和 Tag。一个Item可以有多个Tags
public class Item
{
public int ItemId { get; set; }
public string Name { get; set; }
public List<Tag> Tags { get; set; }
}
public class Tag
{
public int TagId { get; set; }
public int Name { get; set; }
public Item Item { get; set; }
}
我想将TagId 放在Items 表中作为逗号分隔值。
我可以使用外键关联来实现这一点吗?如果是这样,我如何在使用时检索数据?或者请指定替代方法。
【问题讨论】:
-
检查this link是否有帮助
-
请,请,请不要那样做!!天哪,程序员什么时候才能停止这种疯狂......你有一个很好的 FK 关系 -
Tag与Item有连接 - 只需使用它!不要将正确的 FK 关系拆分为逗号分隔的字符串 - 下次您想加入时必须再次“取消拆分”......请认真:不要这样做! -
@marc_s 你能解释一下吗?
-
你需要解释一下 - 到底为什么你想把你所有的 FK 值分解成一个逗号分隔的字符串吗?数据库中的每个
Tag都有一个ItemID列,该列通过proper 外键关系将其链接到Item.ItemID值; .NET 运行时中的每个Tag都有一个关联的Item所属;每个Item都有一个与之关联的Tags 列表——你需要另一个逗号分隔的列来做什么?有什么意义?? -
我有大约 5000 个项目,每个项目都有大约 3-6 个标签,所以你说我在一个表中放置大约 5000 * 6 = 30000 行来关联,项目的数量也可能会增加.如果我需要基于标签进行搜索,这不会导致所有重复标签的记忆丢失吗?
标签: c# entity-framework ef-code-first foreign-keys