我收到异常“从对象类型MyType到已知托管提供程序本机类型不存在映射。”我如何提供映射?
我通过ADO.NET将数据发送到SQL Server。我基本上要将MyType转换为整数。我不需要它作为MyType回来。它作为一个int返回它是好的,尽管它作为MyType回来会很好。
为那些坚持看代码的人编辑:
我有一个类型:
class MyType {
int field1;
int field2;
}
我想将paramValue
类型的MyType
发送到数据库:
using (SqlConnection connection = new SqlConnection(connectionString))
{
SqlCommand command = new SqlCommand(queryString, connection);
command.Parameters.AddWithValue("@param", paramValue);
connection.Open();
SqlDataReader reader = command.ExecuteNonQuery();
}
修改
假设我有一个功能:
class MyType {
int field1;
int field2;
public int dbValue() {
return field1 + field2;
}
}
我想用:
command.Parameters.AddWithValue("@param", paramValue);
而不是:
command.Parameters.AddWithValue("@param", paramValue.dbValue());
因为我不想在任何地方放置.dbValue()
,所以我将它发送到数据库。这只是推迟了我忘记放.dbValue()
的不可避免的一天。
答案 0 :(得分:0)
数据库不知道如何存储MyType
。保存时应该将它提供为2个整数,并且在阅读时应该从2个整数中手动重新创建MyType
。