I need help with my ASP.NET Web Api 2 project, I can make successfully send JSON data, I want to save Invites and the members who are invited.
Post Data Successfully saved on localdb
I used the scaffolding on Visual Studio 2017 and this is my first ever attempt on the .NET enviroment
{
"InviteID": 6,
"Subject": "sddsdsds",
"DateTime": "54545:55",
"Members": [
{
"MemberID": 8,
"MemberName": "sdds",
"IsAdmin": false,
"MemberNumber": 0,
"PhoneNumber": null,
"InviteID": 6
},
{
"MemberID": 9,
"MemberName": "sdds",
"IsAdmin": false,
"MemberNumber": 0,
"PhoneNumber": null,
"InviteID": 6
},
{
"MemberID": 10,
"MemberName": "sdds",
"IsAdmin": false,
"MemberNumber": 0,
"PhoneNumber": null,
"InviteID": 6
}
]
}
But when I try to retrieve the invites, the members array is null:
[
{
"InviteID": 2,
"Subject": null,
"DateTime": null,
"Members": null
},
{
"InviteID": 3,
"Subject": null,
"DateTime": null,
"Members": null
},
{
"InviteID": 4,
"Subject": "sddsdsds",
"DateTime": "54545:55",
"Members": null
},
{
"InviteID": 5,
"Subject": "sddsdsds",
"DateTime": "54545:55",
"Members": null
},
{
"InviteID": 6,
"Subject": "sddsdsds",
"DateTime": "54545:55",
"Members": null
}
]
My Invites model
public class Invite
{
public int InviteID { get; set; }
public string Subject { get; set; }
public string DateTime { get; set; }
public virtual List<Member> Members { get; set; }
}
My Member model
public class Member
{
public int MemberID { get; set; }
public string MemberName { get; set; }
public bool IsAdmin { get; set; }
public int MemberNumber { get; set; }
public string PhoneNumber { get; set; }
public int InviteID { get; set; }
[JsonIgnore]
public virtual Invite Iinvite { get; set; }
}
My controller
public class InvitesController : ApiController
{
private InviteContext db = new InviteContext();
public InvitesController()
{
db.Configuration.ProxyCreationEnabled = false;
}
// GET: api/Invites
public IEnumerable<Invite> Getinvites()
{
return db.invites.ToList();
}
// GET: api/Invites/5
[ResponseType(typeof(Invite))]
public IHttpActionResult GetInvite(int id)
{
Invite invite = db.invites.Find(id);
if (invite == null)
{
return NotFound();
}
return Ok(invite);
}
// PUT: api/Invites/5
[ResponseType(typeof(void))]
public IHttpActionResult PutInvite(int id, Invite invite)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
if (id != invite.InviteID)
{
return BadRequest();
}
db.Entry(invite).State = EntityState.Modified;
try
{
db.SaveChanges();
}
catch (DbUpdateConcurrencyException)
{
if (!InviteExists(id))
{
return NotFound();
}
else
{
throw;
}
}
return StatusCode(HttpStatusCode.NoContent);
}
// POST: api/Invites
[ResponseType(typeof(Invite))]
public IHttpActionResult PostInvite(Invite invite)
{
if (!ModelState.IsValid)
{
return BadRequest(ModelState);
}
db.invites.Add(invite);
db.SaveChanges();
return CreatedAtRoute("DefaultApi", new { id = invite.InviteID }, invite);
}
// DELETE: api/Invites/5
[ResponseType(typeof(Invite))]
public IHttpActionResult DeleteInvite(int id)
{
Invite invite = db.invites.Find(id);
if (invite == null)
{
return NotFound();
}
db.invites.Remove(invite);
db.SaveChanges();
return Ok(invite);
}
protected override void Dispose(bool disposing)
{
if (disposing)
{
db.Dispose();
}
base.Dispose(disposing);
}
private bool InviteExists(int id)
{
return db.invites.Count(e => e.InviteID == id) > 0;
}
}
my db context
public class InviteContext : DbContext
{
public DbSet<Invite> invites { get; set; }
public DbSet<Member> members { get; set; }
}
edit ** Data received when querying Member table**
[
{
"MemberID": 1,
"MemberName": "sdds",
"IsAdmin": false,
"MemberNumber": 0,
"PhoneNumber": null,
"InviteID": 2
},
{
"MemberID": 2,
"MemberName": "sdds",
"IsAdmin": false,
"MemberNumber": 0,
"PhoneNumber": null,
"InviteID": 2
},
{
"MemberID": 3,
"MemberName": "sdds",
"IsAdmin": false,
"MemberNumber": 0,
"PhoneNumber": null,
"InviteID": 3
},
{
"MemberID": 4,
"MemberName": "sdds",
"IsAdmin": false,
"MemberNumber": 0,
"PhoneNumber": null,
"InviteID": 4
},
{
"MemberID": 5,
"MemberName": "sdds",
"IsAdmin": false,
"MemberNumber": 0,
"PhoneNumber": null,
"InviteID": 5
},
{
"MemberID": 6,
"MemberName": "sdds",
"IsAdmin": false,
"MemberNumber": 0,
"PhoneNumber": null,
"InviteID": 5
},
{
"MemberID": 7,
"MemberName": "sdds",
"IsAdmin": false,
"MemberNumber": 0,
"PhoneNumber": null,
"InviteID": 5
},
{
"MemberID": 8,
"MemberName": "sdds",
"IsAdmin": false,
"MemberNumber": 0,
"PhoneNumber": null,
"InviteID": 6
},
{
"MemberID": 9,
"MemberName": "sdds",
"IsAdmin": false,
"MemberNumber": 0,
"PhoneNumber": null,
"InviteID": 6
},
{
"MemberID": 10,
"MemberName": "sdds",
"IsAdmin": false,
"MemberNumber": 0,
"PhoneNumber": null,
"InviteID": 6
}
]