当MVC中的结果不同时,SQL返回相同的结果两次

时间:2014-11-04 11:03:11

标签: mysql asp.net-mvc asp.net-mvc-4

我正在尝试将数据从数据库检索到我的网页。

我有3行:

**ser_num         prod_num  CustomerId   UserName   meter_type  meter_count**
CAVC304222     M451nw     284        abc@m2.com   Colour    5130
CAVC304222     M451nw     284        abc@m2.com   Mono      11311
CNCX515111     HP 4200tn  284        abc@m2.com   Mono      159527

在我的网页中返回:

**ser_num         prod_num  CustomerId   UserName   meter_type  meter_count**
CAVC304222     M451nw     284        abc@m2.com   Colour    5130
CAVC304222     M451nw     284        abc@m2.com   Colour    5130
CNCX515111     HP 4200tn  284        abc@m2.com   Mono      159527

正如你可以看到它的返回CAV304222两次完全相同,就像Color一样。但它应该是1 Color 1 Mono。

我假设我的控制器出了问题,但我不确定:

控制器:

public ActionResult Index()
    {
        var model = cpctx.vw_ReadingsEntry.Where(w => w.UserName ==   this.User.Identity.Name).ToList();            

        return View(model);
    }
}

任何想法为什么它没有从数据库中返回正确的数据,因为它忽略了仪表类型Mono,而是拉入另一个Color ...

感谢。

1 个答案:

答案 0 :(得分:0)

如果您只是在不同的行之后,那么您需要指定使行不同的内容。如果ser_num识别出不同的记录,那么您可以执行以下操作。

public ActionResult Index()
    {
        var model = cpctx.vw_ReadingsEntry
             .Where(w => w.UserName == this.User.Identity.Name)
             .GroupBy(x => x.ser_num) //Replace this with your ser_num property
             .Select(x => x.First())
             .ToList();            

        return View(model);
    }
}

希望这有帮助。