Given a custom type, how can you define what value gets passed when it is
used as a database parameter? Consider:

public class MyClass {
  public string Value;
  public MyClass(string value) { this.Value = value; }
}

using (SqlCommand cmd = new SqlCommand()) {
  // I want myClass to be a string when passed to the database!
  cmd.Parameters.AddWithValue("@param", new MyClass("test"));
}

Right now, I get a "No mapping exists from object type MyClass to a known
managed provider native type" - which certainly implies that a mapping
*could* exist. I've tried implicit conversion operators to System.String
and SqlTypes.SqlString and IConvertible with no luck.

Ideally, it should seamlessly convert to Odbc, OleDb, etc. parameter
values as well (note that it's the value I want coerced - not converting
to an actual SqlParameter).

I would think an attribute, interface or conversion operator would be the
trick - but spelunking with Reflector and Google isn't turning anything
up. Anyone have any ideas?

--Mark Brackett

===================================
This list is hosted by DevelopMentorĀ®  http://www.develop.com

View archives and manage your subscription(s) at http://discuss.develop.com

Reply via email to