1

グーグルで検索してみましたが、答えが見つからなかったので、ここで試してみます。私はSubonicを使用しており、次を使用してオブジェクトを埋めようとしています。

Model.Object o = new Select()
            .From<Object>()
            .Where("Id")
            .IsEqualTo(id)
            .ExecuteSingle<Model.Object>();

そうすると、次のエラーが発生します。 タイプ'System.String'のオブジェクトをタイプ'CustomType'に変換できません 。プロパティの1つがvarcharとしてデータベースに保存されます。Model.objectでは、このプロパティはCustomTypeとして定義されています。私はすでにこのタイプに次のように暗黙の演算子を追加しました:

public static implicit operator CustomType(String value)
    {
        return new CustomType(value);
    }

私はここで何が間違っているのですか?または私は何かが欠けていますか?助けていただければ幸いです

4

2 に答える 2

0

文字列表現からを再作成できるように、独自のTypeConverterを実装してみてください。Model.Object

編集します。SubSonicコードを調べた後、これは役に立たないことがわかりました(これを参照してくださいBuildTypedResult<T>)。IBaseRecord必要に応じて実装してみて、Load()メソッドを実装してください。

于 2009-04-28T11:25:50.193 に答える
0

これが私のプロジェクトである場合、おそらく Model.Object の部分クラスを構築し、そこにファクトリ メソッドをポップするか、Reader を受け取る別のコンストラクター オーバーロードをポップします。その後、そのリーダーを使用して必要に応じてプロパティをロードし、CustomType をキャストできます。

于 2009-04-28T18:21:37.727 に答える