Попытка реализовать общий репозиторий на основе статьи Криса Пратта, которая использует object
как Id
(PK).
Все хорошо, пока я не попытался .Map()
одним из этих объектов с ExpressMapper.
Дополнительный код ниже. Но по существу, когда я пытаюсь это сделать:
var dataModel = postedModel.Map(new ExampleDataModel());
Это дает мне:
Нет конструктора без параметров для этого объекта.
Когда я изменяю свойство Id
ExampleDataModel
на string
или int
, он отлично работает.
Я искал googled. Я не вижу ничего очевидного, но я немного из глубины. Я хотел бы знать:
-
Что вызывает это?
-
Можно ли как-то обойти его?
Я хотел бы продолжать использовать объект PK и ExpressMapper, если это возможно, потому что они оба подходят для моего проекта просто отлично.
public interface IDataModel
{
object Id { get; }
}
public interface IDataModel<PKT> : IDataModel
{
new PKT Id { get; set; }
}
public abstract class DataModel<PKT> : IDataModel<PKT>
{
public PKT Id { get; set; }
object IDataModel.Id
{
get { return this.Id; }
}
}
public class ExampleDataModel :
DataModel<string>,
IDataModel<string>
{
public virtual string SomeProperty{ get; set; }
// etc.
}