Hej, poszukuje kogos ogarnietego w C# i Entity Framework.
Stworzylem relacje many to many i jestem w stanie ja bezproblemowo wyswietlic, ale mam problemy w zakodowaniu logiki podczas edit/create, z jakiegos powodu nie chce wziac wartosci z checkboxa i dodac/zedytowac rekordy w bazce...
przykladowy context, w momencie kiedy mam event i chce mu zedytowac badz dodac nowych playerow, nie jestem w stanie...
zapewne cos nie tego mam w modelu i view ale proboje od tygodnia i szukam w necie, niestety nie jestem w stanie tego wymadzic....
public DbSet<Event> Event { get; set; }
public DbSet<Group> Group { get; set; }
public DbSet<Player> Player { get; set; }
protected override void OnModelCreating(ModelBuilder modelBuilder)
{
modelBuilder.Entity<Event>().ToTable(nameof(Event))
.HasMany<Player>(s => s.Players)
.WithMany(c => c.Events);
Tutaj Controller dla Edit
[HttpPost]
[ValidateAntiForgeryToken]
public async Task<IActionResult> Edit(int id, [Bind("Id,GroupId,Title,EventDate")] Event @event)
{
if (id != @event.Id)
{
return NotFound();
}
//Tu znajdzie tylko graczy ktory juz istnieja w bazce
var EventToUpdate = await _context.Event
.Include(p => p.group)
.ThenInclude(f => f.players)
.Include(e => e.Players)
.FirstOrDefaultAsync(m => m.Id == id);
//Tu znajdzie wszystkich graczy znajdujacych sie w grupie, ktora jest ustawiona na Evencie
var playerToUpdate = await _context.Group
.Include(e => e.players)
.FirstOrDefaultAsync(m => m.Id == @event.GroupId);
if (ModelState.IsValid)
{
try
{
//Ten Update nie aktualizuje ani nie dodaje relacji Event > Player
_context.Update(@event);
await _context.SaveChangesAsync();
}
Zapewne dla ogarnietej osoby wystarczy 15 minut z sharowanym ekranem aby zobaczyc co jest nie tak Bede wdzieczny za kazda pomoc...