如何在mvc3中找到表中的唯一记录?

时间:2014-03-12 10:50:35

标签: c# asp.net asp.net-mvc-3

下面是我的方法在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。

3 个答案:

答案 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;
        }

它的工作......我用过它