配置自定义数据类型映射以与 System.Data.SqlClient.SqlParameter 一起使用

ror*_*.ap 5 .net c# ado.net type-conversion

我有一个名为 struct CaseInsensitiveString,它只是一个包装器,它允许我的程序使用字符串而不关心它们的大小写。不过,当它持久化到数据库时,它与常规字符串没有什么不同,所以我希望能够像这样使用它System.Data.SqlClient.SqlParameter

var myString = new CaseInsensitiveString("foo");
var param = new SqlParameter("@MyValue", myString);
Run Code Online (Sandbox Code Playgroud)

当然我不能这么做,因为我SqlParameter不知道我的CaseInsensitiveStringSystem.ArgumentException当我尝试将它与 SqlDataAdapter 一起使用时,我得到:

不存在从对象类型 ConsoleApplication1.CaseInsensitiveString 到已知托管提供程序本机类型的映射。

有没有办法制作自己的映射以便我可以转换CaseInsensitiveStringSystem.String?我可以想象有一个我必须在 上实现的接口CaseInsensitiveStringMSDN没有提供任何这方面的信息。

我想,更简洁地说,我的问题实际上是:如何将一种数据类型强制转换为System.Data.SqlClient.SqlParameter.