Cố gắng triển khai kho lưu trữ chung dựa trên an article by Chris Pratt sử dụng object
làm Id
(PK).Tại sao ánh xạ đối tượng PK phá vỡ ExpressMapper?
Tất cả đều tốt, cho đến khi tôi cố gắng .Map()
một trong các đối tượng này với ExpressMapper.
Thêm mã bên dưới. Nhưng về cơ bản, khi tôi cố gắng và làm điều này:
var dataModel = postedModel.Map(new ExampleDataModel());
Nó mang lại cho tôi:
Không parameterless constructor định nghĩa cho đối tượng này.
Khi tôi thay đổi Id
tài sản của ExampleDataModel
đến một string
hoặc int
nó hoạt động tốt.
Tôi đã googled xung quanh. Tôi không thấy bất cứ điều gì rõ ràng, nhưng tôi là một chút ra khỏi chiều sâu của tôi. Tôi muốn biết:
Điều gì gây ra điều này?
Tôi có thể làm việc vòng bằng cách nào đó không?
Tôi muốn tiếp tục sử dụng đối tượng PK và ExpressMapper nếu có thể vì cả hai đều đang suiting dự án của tôi.
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.
}
Cảm ơn và xin lỗi vì sự chậm trễ trong việc quay lại. Tôi không nghĩ đó là vấn đề trong dịp này. Sự hiểu biết của tôi là C# thêm một hàm tạo parameterless mặc định vào các đối tượng trừ khi một tham số được xác định. Nó cũng không giải thích cách thay đổi thuộc tính Id thành 'string' sửa vấn đề tôi đang nắm bắt. –