Tôi đang làm việc với WebAPI trong bản MVC 4 Beta mới. Tôi đã gặp lỗi này khi cố gắng để có được một thực thể có một tài sản virtual ICollection<>
để cư trú. Có cách nào để giải quyết vấn đề này ngay bây giờ không? Tôi hiểu điều này đang ở giai đoạn Beta, vì vậy điều này có thể được cố định xuống đường. Nó chỉ là một sự tò mò nếu có một giải pháp ra khỏi đó cho việc này.MVC 4 Beta - Bạn phải viết thuộc tính 'type' = 'object' sau khi viết thuộc tính với tên cục bộ '__type'
Trả lời
Tôi đã làm việc này bằng cách xóa từ khóa ảo và đảm bảo rằng các đối tượng và bộ sưu tập đã có từ khóa ảo được cung cấp trong câu lệnh Bao gồm trong kho lưu trữ của tôi.
public class Order
{
public int ID { get; set; }
public DateTime OrderDate { get; set; }
public ICollection<Product> Products { get; set; }
}
public interface IOrderRepository
{
IQueryable<Order> Orders { get; }
void SaveOrder(Order order);
void DeleteOrder(Order order);
}
public class OrderRepository
{
StoreDbContext db = new StoreDbContext();
public IQueryable<Order> Orders
{
get { return db.Orders.Include("Products"); }
}
public void SaveOrder(Order order)
{
db.Entry(order).State = order.ID == 0 ?
EntityState.Added :
EntityState.Modified;
db.SaveChanges();
}
public void DeleteOrder(Order order)
{
db.Orders.Remove(order);
db.SaveChanges();
}
}
Tôi gặp sự cố tương tự. Tôi đã sửa nó bằng cách sử dụng một lớp ViewModel chỉ có các kiểu đơn giản. Tôi đã dịch đối tượng được trả về bởi DbContext vào lớp ViewModel của tôi và truyền lại cho khách hàng.
Điều này sẽ không hoạt động trong mọi tình huống, nhưng nó đã làm trong tôi.
Tôi gặp sự cố tương tự, có vẻ như là sự cố với trình nối tiếp WebApi mặc định. Tôi đã thêm Json.Net làm trình định dạng trong Global.asax.cs và nó hoạt động tốt cho tôi. Tôi chỉ đi theo ví dụ này: http://blogs.msdn.com/b/henrikn/archive/2012/02/18/using-json-net-with-asp-net-web-api.aspx
Đây là những gì tôi đã có trong Global.asax.cs của tôi
JsonSerializerSettings serializerSettings = new JsonSerializerSettings();
serializerSettings.Converters.Add(new IsoDateTimeConverter());
GlobalConfiguration.Configuration.Formatters[0] = new JsonNetFormatter(serializerSettings);
Tôi chỉ cần thêm gói Json.Net sử dụng NuGet và tạo lớp JsonNetFormatter như giải thích trong bài viết trên.
Cũng gặp phải sự cố này. Tình hình của tôi hơi khác một chút.
Tôi có cấu trúc này và nó sẽ không hoạt động đối với tôi.
[DataContract]
public class MJPEGCamera : Camera
{
}
[DataContract]
public class H264Camera : Camera
{
}
[DataContract]
public class Camera
{
[DataMember]
public string cameraName { get; set; }
[DataMember]
public string address { get; set; }
[DataMember]
public string format { get; set; }
[DataMember]
public string archiveDaysUrl { get; private set; }
[DataMember]
public string archiveHoursUrl { get; private set; }
}
Vì vậy, tôi vừa tạo một nhà máy trong máy ảnh để thực hiện những gì tôi cần. Hy vọng điều này sẽ giúp ai đó tìm thấy câu trả lời này.
- 1. Viết thuộc tính CompareTo DataAnnotation
- 2. Viết thuộc tính tùy chỉnh trong C# như thuộc tính ủy quyền ASP.Net MVC
- 3. C# MVC 4 ControllerName thuộc tính
- 4. html hyphenated thuộc tính với asp.net MVC
- 5. Loại bỏ các thuộc tính Null khỏi Json trong MVC Web Api 4 Beta
- 6. MVC 4 Chú thích dữ liệu "Hiển thị" Thuộc tính
- 7. Việc sử dụng các thuộc tính dữ liệu HTML-5 có bị hỏng trong ASP.NET MVC 4 (beta) không?
- 8. isset() với tên thuộc tính động
- 9. UPPERCASE, chữ thường, Viết hoa một thuộc tính Ant
- 10. Lỗi Android: Bạn phải cung cấp thuộc tính layout_width
- 11. Làm thế nào để viết các thuộc tính phần tử không gian tên với LXML?
- 12. Viết thuộc tính @dynamic của riêng tôi trong Cocoa
- 13. Python: thiếu thuộc tính lớp __module__ khi sử dụng type()?
- 14. Ghi đè thuộc tính với thuộc tính
- 15. Thuộc tính bố cục tùy chỉnh Android thuộc tính "định dạng thuộc tính tham chiếu"?
- 16. MVC 3 Các thuộc tính bắt buộc có tính chất
- 17. Bắt Thuộc tính nội bộ của LDAP Object
- 18. Enum.TryParse với thuộc tính Flags
- 19. Chọn thuộc tính mô hình bằng lambda chứ không phải tên thuộc tính chuỗi
- 20. Phải làm gì khi tên thuộc tính khớp với tên lớp
- 21. .NET: Nhận tên thuộc tính trong thuộc tính
- 22. set Thuộc tính: Thuộc tính không thể tuần tự hóa (Java Object Serialization)
- 23. thuộc tính tùy chỉnh chỉ làm việc với element.getAttribute ("thuộc tính") nhưng không phải là "element.attribute"
- 24. Cách nhận thuộc tính có thuộc tính DataMemberAttribute với tên được chỉ định?
- 25. Thuộc tính F # so với thuộc tính C#
- 26. "chìa khóa thuộc tính trùng lặp" lỗi khi thuộc tính không phải là một chìa khóa
- 27. ASP.NET MVC ValidationAttribute Nhận Tên Hiển thị Thuộc tính Khác
- 28. Thuộc tính UIHint trong MVC
- 29. Lấy lại các thuộc tính mặc định sau khi áp dụng đặt lại CSS toàn cục
- 30. AOP vs Bộ lọc MVC Thuộc tính và Bộ chặn
Nếu lỗi liên quan đến việc tuần tự hóa các proxy được tạo tự động VÀ nếu bạn không thực sự cần chúng thì bạn có thể chỉ cần vô hiệu hóa tạo proxy trên ngữ cảnh của bạn ... Dưới đây là một Q/A tương tự ... http : //stackoverflow.com/questions/8173524/webapi-with-ef-code-first-generates-error-when-having-parent-child-relation – blins
Đây là một giải pháp khác có thể hiệu quả hơn http://stackoverflow.com/questions/7235650/entity-framework-serialize-poco-to-json – starcorn