1

我试图在谷歌上搜索它,但找不到答案,所以我会在这里尝试。我正在使用 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);
    }

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

4

2 回答 2

0

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

于 2009-04-28T18:21:37.727 回答
0

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

编辑。在挖掘了 SubSonic 代码后,我发现这无济于事(请参阅, BuildTypedResult<T>)。IBaseRecord如果您愿意,请尝试实施,并实施Load()方法。

于 2009-04-28T11:25:50.193 回答