c# - Get lists of ID's and add on database using LINQ -
i have method:
public actionresult complete(int id) { // validate customer owns order bool isvalid = storedb.orders.any( o => o.orderid == id && o.username == user.identity.name); bool checkordervalue = storedb.orders.any(o => o.orderid == id && o.total == 0); int musicaid = storedb.orderdetails.where(o => o.orderid == id).select(o => o.musicaid).firstordefault(); if (isvalid && checkordervalue) { int iduser = 0; if (request.isauthenticated) { var membership = (webmatrix.webdata.simplemembershipprovider)membership.provider; iduser = membership.getuserid(user.identity.name); } var musicas = storedb.musicas.where(x => x.musicaid == musicaid) .select(x => new { x.nome, x.nomeartista, x.genero, x.path }) .tolist().first(); var y = new usuariomusica() { userid = iduser, musicaid = musicaid, generoid = musicas.genero.generoid, genero = musicas.genero, nome = musicas.nome, nomeartista = musicas.nomeartista, path = musicas.path }; if (modelstate.isvalid) { storedb.usuariomusicas.add(y); storedb.savechanges(); } return view(id); } else { return view("error"); } } i want take list of id's on line:
int musicaid = storedb.orderdetails.where(o => o.orderid == id) .select(o => o.musicaid).firstordefault(); and after this, need add each id database.
i think need make foreach list musicaid, don't know how i'll pass each id add database.
actually, method adding first element, know why, because firstordefault method.
how can change add more 1 id?
you have use foreach loop , save changes when elements added. example in way:
public actionresult complete(int id) { // validate customer owns order bool isvalid = storedb.orders.any( o => o.orderid == id && o.username == user.identity.name); bool checkordervalue = storedb.orders.any(o => o.orderid == id && o.total == 0); if (isvalid && checkordervalue) { int iduser = 0; if (request.isauthenticated) { var membership = (webmatrix.webdata.simplemembershipprovider)membership.provider; iduser = membership.getuserid(user.identity.name); } var musicaids = storedb.orderdetails.where(o => o.orderid == id).select(o => o.musicaid).tolist(); foreach (var musicaid in musicaids) { var musicas = storedb.musicas.where(x => x.musicaid == musicaid) .select(x => new { x.nome, x.nomeartista, x.genero, x.path }).tolist().first(); var y = new usuariomusica() { userid = iduser, musicaid = musicaid, generoid = musicas.genero.generoid, genero = musicas.genero, nome = musicas.nome, nomeartista = musicas.nomeartista, path = musicas.path }; if (modelstate.isvalid) { storedb.usuariomusicas.add(y); } } storedb.savechanges(); return view(id); } else { return view("error"); } }
Comments
Post a Comment