title: Json result : Expected ',' instead of ''
body: <p>I'm kind of new when it comes to api's and json serialization.
  I'm encountering a weird output. It seems that my json output is being truncated or wrongly formatted?</p>
  
  <p>(I'm using a web api with .net core 2.0 and entity framework core 2.0 preview2)</p>
  
  <p>The following error occurs in postman:</p>
  
  <pre><code>Expected ',' instead of ''
  </code></pre>
  
  <p>But when checking the raw data I see that not everything is being send:</p>
  
  <pre><code> {
      "id": 2,
      "username": "c8bee98",
      "firstname": "Firstname73",
      "lastname": "Lastname73",
      "creationDate": "2017-07-02T23:47:16.204588",
      "activityDate": "2017-07-03T14:02:58.6982234+02:00",
      "profilePictureURL": "ProfilePictureURL73",
      "gender": 2,
      "location": "POINT(25.1400680863951
      -25.0786780636193)",
      "appsetting": null,
      "email": "Email73",
      "isHidden": false,
      "isBanned": false,
      "feedback": [{
              "id": 19,
              "rating": 1,
              "feedbackType": 0,
              "message": "Message1",
              "creationDate": "2017-07-02T23:47:18.2287331",
              "userId": 2
  </code></pre>
  
  <p>My controller looks like this:</p>
  
  <pre><code>    UserManager userManager = new UserManager();
  
      [HttpGet]
      public async Task&lt;User&gt; GetById(int id)
      {
          try
          {
              return await userManager.GetByIdAsync(id);
          }
          catch (Exception ex)
          {
  
              throw ex;
          }
      }
  </code></pre>
  
  <p>My model looks like this:</p>
  
  <pre><code>public class User
  {
      [DisplayName("Id")]
      public int Id { get; set; }
  
  
      private string username = Guid.NewGuid().ToString("N");
  
      [Required(ErrorMessage = "Username is required")]
      [DisplayName("Username")]
      [StringLength(32)]
      public string Username
      {
          get {
              string shortusername = username;
              return shortusername.Remove(0,25);
          }
      }
      public string ResetUsername()
      {
          username = Guid.NewGuid().ToString("N");
          return username;
      }
  
      [Required(ErrorMessage = "Firstname is required")]
      [StringLength(50, ErrorMessage = "Firstname can only be 50 characters long")]
      [DisplayName("Firstname")]
      public string Firstname { get; set; }
  
      [Required(ErrorMessage = "Lastname is required")]
      [StringLength(50, ErrorMessage = "Lastname can only be 50 characters long")]
      [DisplayName("Lastname")]
      public string Lastname { get; set; }
  
      [Required(ErrorMessage = "Creation date is required")]
      [DisplayName("Creation Date")]
      [DataType(DataType.Date)]
      [Column(TypeName = "datetime2")]
      [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
      public DateTime CreationDate { get; set; } = DateTime.Now;
  
      [Required(ErrorMessage = "Last activity date could not be registered")]
      [DisplayName("Last Activity Date")]
      [DataType(DataType.Date)]
      [Column(TypeName = "datetime2")]
      [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
      private DateTime lastActivityDate;
  
      public DateTime ActivityDate
      {
          get { return lastActivityDate; }
          set { lastActivityDate = DateTime.Now; }
      }
  
      [DataType(DataType.ImageUrl)]
      [StringLength(2000, ErrorMessage = "That link is to long!")]
      [DisplayName("Profile Picture")]
      public string ProfilePictureURL { get; set; }
  
      [Required]
      [DisplayName("Gender")]
      public Gender Gender { get; set; } = Gender.Unknown;
  
      private string location = "POINT (0 0)";
  
      [Required]
      [DataType("geography")]
      [DisplayName("Location")]
      public string Location
      {
          get { return location; }
      }
  
      public string SetLocation(double latitude, double longitude)
      {
          location = String.Format("POINT({0} {1})", longitude, latitude).Replace(',', '.');
          return location;
      }
      public double GetLatitude()
      {
          return double.Parse(location.Split('(', ')')[0].Split(' ')[0]);
      }
      public double GetLongitude()
      {
          return double.Parse(location.Split('(', ')')[0].Split(' ')[1]);
      }
  
      [DisplayName("App Settings")]
      public AppSetting Appsetting { get; set; }
  
      [DisplayName("Email")]
      [DataType(DataType.EmailAddress, ErrorMessage = "Invalid email" )]
      [StringLength(320)]
      public string Email { get; set; }
      [Required]
      [DisplayName("Hidden")]
      public bool IsHidden { get; set; } = false;
  
      [Required]
      [DisplayName("Banned")]
      public bool IsBanned { get; set; } = false;
  
      //User can have multiple feedbacks
      public IEnumerable&lt;Feedback&gt; Feedback { get; set; }
  
      //User can have multiple reported users
      public IEnumerable&lt;Reported&gt; ReportedUsers { get; set; }
  
      //User can have multiple blocked users
      public IEnumerable&lt;Blocked&gt; BlockedUsers { get; set; }
  
      //User can have multiple connections
      public IEnumerable&lt;Connection&gt; Connections { get; set; }
  
      //User can have multiple categories
      public IEnumerable&lt;UserCategory&gt; UserCategory { get; set; }
  
      //User can have multiple roles
      public IEnumerable&lt;UserRole&gt; UserRole { get; set; }
  
      //User can have multiple messages
      public IEnumerable&lt;Message&gt; Messages { get; set; }
  
      //User can watch multiple advertisements
      public IEnumerable&lt;Advertisement&gt; Advertisement { get; set; }
  
      //User can watch multiple advertisements
      public IEnumerable&lt;UserAdvertisement&gt; WatchedAdvertisement { get; set; }
  
      //User can have multiple providers
      public IEnumerable&lt;UserProvider&gt; UserProvider { get; set; }
  }
  </code></pre>
  
  <p>Any suggestions?</p>
  
  <p>EDIT: </p>
  
  <p>My feedback collection has 2 items (2 feedbacks).</p>
  
  <p>Only 1 is shown with all its properties.</p>
  
  <p>Feedback Model:</p>
  
  <pre><code>public class Feedback
  {
      [DisplayName("Id")]
      public int Id { get; set; }
  
      [Required(ErrorMessage = "A rating is required")]
      [DisplayName("Rating")]
      public int Rating { get; set; }
  
      [Required(ErrorMessage = "A feedbacksection is required")]
      [DisplayName("Section")]
      public FeedbackType FeedbackType { get; set; }
  
      [DisplayName("Message")]
      //[DataType("nvarchar(500)")]
      [StringLength(500, ErrorMessage = "That message is to long!")]
      public string Message { get; set; }
  
      [Required(ErrorMessage = "Creation date is required")]
      [DisplayName("Creation Date")]
      [DataType(DataType.Date)]
      [Column(TypeName = "datetime2")]
      [DisplayFormat(ApplyFormatInEditMode = true, DataFormatString = "{0:yyyy-MM-dd}")]
      public DateTime CreationDate { get; set; } = DateTime.Now;
  
      [Required]
      [DisplayName("User")]
      public int UserId { get; set; }
      public User User { get; set; }
  }
  </code></pre>