0

我想使用可以索引的 C# 创建自己的 UDT。不幸的是,它必须有自己的序列化并且不能是字节顺序(因为这个 UDT 注定要包含许多双精度值)。

如何实现自己的比较?

MSDN 声称实现 Icomparable 只影响客户端的比较,而 SQL Server 不使用它。

4

1 回答 1

0

不要进行典型的比较(即 A < B),而是编写一个 CLR 函数,然后您可以将其注册为 SQL Server 中的用户定义函数。假设你编写了一个函数,如果 A < B 返回 -1,如果 A = B 返回 0,如果 A > B 返回 1。那么你的比较变成

WHERE (myUserDefinedComparisonFunction(A, B) < 1)

事实上,如果你继续让你的类型实现 IComparable 你的 CLR 比较代码就变成了

返回 A.CompareTo(B);

于 2013-07-26T13:06:01.787 回答