下面是我的方法在Implementclasss中编写,用于从表中获取唯一的AlbumName。
public static List<CRBT_Promotion> getalbumformis()
{
List<CRBT_Promotion> misalbum = new List<CRBT_Promotion>();
using (crbt_onwebEntities dbcontext = new crbt_onwebEntities())
{
misalbum = (from z in dbcontext.CRBT_Promotion select z).Distinct().ToList();
}
return misalbum;
}
我的动作中的和下面已经写入控制器以获取唯一的albumname,我必须调用我的方法ahich已经在实现类中定义了如上所述。请帮帮我
public ActionResult MISAlbum()
{
AlbumSongModel s = new AlbumSongModel();
List<CRBT_Promotion> lst = implement.getalbumformis();
s.albums = lst.Select(x => new SelectListItem
{
Value = x.AlbumName.ToString(),
Text = x.AlbumName
});
return View("MISAlbum",s);
}
在我的表中,AlbumName列有重复的条目,我必须从表中仅获取唯一的AlbumNAme。
答案 0 :(得分:0)
我希望这可以尝试一下。
public static List<CRBT_Promotion> getalbumformis()
{
List<CRBT_Promotion> misalbum = new List<CRBT_Promotion>();
using (crbt_onwebEntities dbcontext = new crbt_onwebEntities())
{
misalbum = from z in dbcontext.CRBT_Promotion
.GroupBy(p => new CRBT_Promotion {p.AlbumName} )
.Select(g => g.First())
.ToList();
}
return misalbum;
}
public ActionResult MISAlbum()
{
AlbumSongModel s = new AlbumSongModel();
s.albums = implement.getalbumformis();
return View("MISAlbum",s);
}
答案 1 :(得分:0)
如果您想在第一种方法中返回相册对象,则需要 DistinctBy ,这不是.net库的一部分。
但是,您可以先使用此查询选择唯一的相册名称:
misalbum = (from z in dbcontext.CRBT_Promotion select z.AlbumName).Distinct().ToList();
这将返回所有不同专辑名称的列表,然后从那里您可以使用名称执行您想要的操作,也可以返回数据库并检索控制器中的对象或使用相同的方法
答案 2 :(得分:0)
public static List<CRBT_Promotion> getalbumformis()
{
List<CRBT_Promotion> misalbum = new List<CRBT_Promotion>();
using (crbt_onwebEntities dbcontext = new crbt_onwebEntities())
{
misalbum = (from z in dbcontext.CRBT_Promotion.GroupBy(p=>p.AlbumName).Select(g=>g.FirstOrDefault()) select z).ToList();
}
return misalbum;
}
它的工作......我用过它