尝试实施基于an article by Chris Pratt的通用存储库,该存储库使用object
作为Id
(PK)。
一切都很好,直到我用ExpressMapper尝试.Map()
其中一个对象。
下面有更多代码。但基本上,当我尝试这样做时:
var dataModel = postedModel.Map(new ExampleDataModel());
它给了我:
没有为此对象定义无参数构造函数。
当我将Id
的{{1}}属性更改为ExampleDataModel
或string
时,它可以正常工作。
造成这种情况的原因是什么?
我可以以某种方式解决这个问题吗?
我想继续使用对象PK和ExpressMapper,因为它们都适合我的项目。
int
答案 0 :(得分:2)
当您执行new ExampleDataModel()
时,您正试图使用无参数构造函数初始化ExampleDataModel
的实例,但是看着您的课程,您没有一个,那个&#39}为什么你要
No parameterless constructor defined for this object.
你应该添加一个无参数构造函数, 看起来像这样
ExampleDataModel()
{
//init object
}
虽然我不确定你想如何初始化你的对象,所以我不确定你的构造函数应该如何。
答案 1 :(得分:2)
更改你的ExampleDataModel类,我没有看到Id属性,你如何返回this.Id
没有任何参考,你还需要一个字符串Id属性IDataModel<string>
强迫你我希望这个帮助:
public class ExampleDataModel : IDataModel, IDataModel<string>
{
public string Id { get; set; }
object IDataModel.Id
{
get { return this.Id; }
}
public virtual string SomeProperty { get; set; }
// etc.
}