Question:
My Galeria
class has a foreign key with Album
because there is a 1-n relationship and each photo in the Galeria
item has an Album
respectively. Given that, in the CMS I created I give the user the possibility to relate a photo to an Album at the time of upload. For that, my View looks like this:
<div class="editor-label">
Cursos @Html.DropDownList("Album", ViewData["Cursos"] as SelectList)
</div>
And my Controller:
AlbumAplicacao bdAlbum;
bdAlbum = AlbumAplicacaoConstrutor.AlbumAplicacaoEF();
var list = new SelectList(bdAlbum.ListarTodos().OrderByDescending(x => x.Nome), "ID", "Nome");
ViewData["Cursos"] = list;
My Domain:
public class CONGRESSO_Galeria
{
public int ID { get; set; }
public string Descricao { get; set; }
public string Foto { get; set; }
public virtual CONGRESSO_Album CONGRESSO_Album { get; set; }
}
My problem is that I'm getting several identical values in the Dropdown. I tried using Trim()
and filtering using Distinct()
but without success.
I noticed that the problem was generated because at the time of recording the item, I am recording an Album again. I'll fix this, but hundreds of items have already been registered and thanks to that, I need to find a way to change the display.
Answer:
Rafael.
Try this:
[Controller]
var list = new SelectList(bdAlbum.ListarTodos().OrderByDescending(x => x.Nome).GroupBy(x => x.Nome.ToLower().Trim()).Select(y => y.First()) , "ID", "Nome");
This way you will group all the same values.
The correct thing is to avoid that duplicate values are inserted in your bank.