jah*_*ahu 39 c# t-sql generics sql-server-2008 sql-server-2012
以下代码实现了一个UDT,它派生自泛型(SortedDictionary):
[Serializable]
[Microsoft.SqlServer.Server.SqlUserDefinedType(Format.UserDefined, MaxByteSize = 8000)]
public class udtMassSpectra : SortedDictionary<float, float>, INullable, IBinarySerialize, ICloneable, IDisposable
{
...
}
Run Code Online (Sandbox Code Playgroud)
创建类型(T-SQL):
CREATE TYPE dbo.udtMassSpectra EXTERNAL NAME MassSpectra.udtMassSpectra;
Run Code Online (Sandbox Code Playgroud)
抛出异常:
消息10331,级别16,状态1,行1在程序集"MassSpectra"中键入'udtMassSpectra'派生自CLR类型不支持的泛型类型.
是什么原因?除了将基类隐藏在私有成员中之外,还有其他解决方法吗?此代码适用于SQL-Server 2005.