Я понимаю, что сериализатор в ASP. NET Core может не обрабатывать определенные ответы, но почему я получаю эту ошибку, когда не пытаюсь вернуть рассматриваемый объект?
См. Здесь ошибку: https://imgur.com/a/2se9eWB
![enter image description here](https://i.stack.imgur.com/tbiNv.png)
Когда я пытаюсь присоединить мой ProjectResourceRequest
к моему ProjectResourceAssignment
, он записывает в базу данных, но выдает эту ошибку.
Классы моделей:
public abstract class DivDbBase
{
[Key]
public int Id { get; set; }
[Required]
public DateTimeOffset DateCreated { get; set; }
public int CreatedByUserId { get; set; }
[Required]
public DateTimeOffset LastDateModified { get; set; }
public int LastModifiedByUserId { get; set; }
//[ForeignKey("CreatedByUserId")]
//public DivDbUser CreatedByUser { get; set; }
//[ForeignKey("LastModifiedByUserId")]
//public DivDbUser LastModifiedByUser { get; set; }
}
public interface IDivDbEvent
{
[Required]
public DateTimeOffset StartDate { get; set; }
[Required]
public DateTimeOffset EndDate { get; set; }
}
public class DivDbProjectResourceRequest : DivDbBase, IDivDbEvent
{
public int ProjectId { get; set; }
public int RoleId { get; set; }
[Required]
public DateTimeOffset StartDate { get; set; }
[Required]
public DateTimeOffset EndDate { get; set; }
[ForeignKey("ProjectId")]
public DivDbProject Project { get; set; }
[ForeignKey("RoleId")]
public DivDbRole Role { get; set; }
}
public class DivDbProjectResourceAssignment : DivDbBase, IDivDbEvent
{
public int ProjectId { get; set; }
public int RoleId { get; set; }
public int UserId { get; set; }
public int? ProjectResourceRequestId { get; set; }
public DateTimeOffset StartDate { get; set; }
public DateTimeOffset EndDate { get; set; }
[ForeignKey("ProjectId")]
public DivDbProject Project { get; set; }
[ForeignKey("RoleId")]
public DivDbRole Role { get; set; }
[ForeignKey("UserId")]
public DivDbUser User { get; set; }
[ForeignKey("ProjectResourceRequestId")]
public DivDbProjectResourceRequest ProjectResourceRequest { get; set; }
}
Тогда в моем контроллере ProjectResourceRequest
уже существует, и я тоже не пытаюсь вернуть из сложных объектов:
DivDbProjectResourceAssignment dbProjectResourceAssignment = new DivDbProjectResourceAssignment()
{
ProjectId = 1,
RoleId = 1,
UserId = 1,
StartDate = DateTimeOffset.Now,
EndDate = DateTimeOffset.Now,
ProjectResourceRequestId = 1,
CreatedByUserId = 1,
LastModifiedByUserId = 1,
LastDateModified = DateTimeOffset.Now,
DateCreated = DateTimeOffset.Now
};
mContext.ProjectResourceAssignments.Add(dbProjectResourceAssignment);
mContext.SaveChanges();
Элементы добавляются правильно, но это приводит к сбою ответа контроллера независимо от того, возвращаю ли я этот элемент. Если мне нужно получить элемент из моей базы данных, используя mContext
сейчас, я получаю ту же ошибку ... еще раз, возвращаю ли я этот элемент в любой форме из контроллера API.