0

我收到异常“不存在从对象类型 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()

4

1 回答 1

0

数据库不知道如何存储MyType. 保存时应将其作为 2 个整数提供,并MyType在读取时手动从 2 个整数重新创建。

于 2013-08-12T22:49:17.480 回答