如何使subonic将String转换为我的自定义Type

时间:2009-04-28 11:22:16

标签: c# subsonic types

我试图在谷歌搜索它但找不到答案所以我会在这里试试。 我正在使用Subonic并尝试使用以下方法填充对象:

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

这样做时我得到错误: “System.String”类型的对象无法转换为“CustomType”类型 其中一个属性作为varchar存储在数据库中。在Model.object中,此属性定义为CustomType。我已经在这个类型中添加了一个隐式运算符:

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

我在这里做错了什么?还是我错过了什么?任何帮助表示赞赏

2 个答案:

答案 0 :(得分:0)

尝试实施自己的TypeConverter,以便可以从字符串表示形式重新创建Model.Object

修改即可。在深入研究SubSonic代码后,我发现这无济于事(请参阅thisBuildTypedResult<T>)。如果您愿意,请尝试实施IBaseRecord,并实施Load()方法。

答案 1 :(得分:0)

如果这是我的项目,我可能会为Model.Object构建一个部分类,然后在那里弹出一个工厂方法,或者可能是另一个带有Reader的构造函数重载。然后,您可以根据需要使用该阅读器加载属性,然后再投射CustomType。