【发布时间】:2019-07-08 19:04:32
【问题描述】:
有时我需要一个引用整数列表的行。
在某些情况下,添加整个表格感觉有点过头了。我永远不需要在行的上下文之外解决这些ints。
当我不需要担心下面的多个表时,我的 C# 代码会变得更简单。
一个简单的例子是:仅存在于 C# 端的枚举列表。
理论上,我正在寻找“整数列表”字段类型。有什么吗?
User
- Id int
- Property1 int
- Property2 int
- ListOfEnumValues list(int) -- or something
目前我回退到添加逗号分隔的字符串,但这需要更多的字节,而不是我想要的,并且感觉更“脏”。
我现在如何做的一个例子:
public IEnumerable<int> Numbers
{
get { return _NumbersDb.Split(','); }
set { _NumbersDb = string.Join(',', value); }
}
我正在考虑编写某种 C# 辅助方法并使用 varbinary。
还有其他建议吗?
【问题讨论】:
-
称为联结/关联表。
-
嗨@GordonLinoff,我想省略的实际上是联结表——它给一些小情况带来了太多的开销(比如参考只存在于C#中的枚举列表)。当然,对于所有重要的“英雄”表,我都会以正确的方式进行操作。
-
你是问SQL中有没有集合类型?如果是这样,我不相信有。
-
不是 100% 确定你在问什么。您只是在寻找一个整数表吗?
-
如果您只需要一个仅在 C# 端用作列表的整数列表,那么只需将此列设为 varchar(somethingbigenough) 并使用逗号分隔列表。那是HUGE RDBMS antipattern,下一个开发人员可能会活剥你的皮,但听起来它很适合这里的账单。如果你走这条路,它只会是 'dirty' 因为它是。联结表将是更具可扩展性的解决方案,并且不会受到反模式问题的影响。
标签: c# sql sql-server list