iT邦幫忙

0

WEB API Distinct 撈不出資料

大大好 小弟試著實作後端WEB API從Database撈取Distinct後的資料,
試著參照Stack Overflow此篇方法實作後,
前端卻顯示不出資料 想請問大大哪邊有誤嗎 @@

namespace WebAIP.Controllers
{
    public class Student_inforController : ApiController
    {
        private StudentsEntities db = new StudentsEntities();

        // GET: api/Student_infor
        public IQueryable<Student_infor> GetStudent_infor()
        {
            var uniq = db.Student_infor
                .GroupBy(x => x.S_ID)
                .Select(y => y.First())
                .Distinct();
            
            return uniq;
        }
    }
}

抱歉沒要答得太清楚重新上圖 要Distinct S_ID 重複的資料 S_infor_ID才是主key
https://ithelp.ithome.com.tw/upload/images/20190822/20107444l9vVAi51WE.jpg

japhenchen iT邦研究生 5 級 ‧ 2019-08-22 09:38:30 檢舉
((沒額度了......))
GroupBy之後只會有Key,而且已是唯一值,無需再Distinct()

Select(y=>y.First() ) ???????????? 取S_ID第一個字母?你是要取第一筆資料嗎?

var uniq = db.Student_infor
.GroupBy(x => x.S_ID)
.Select(y => y.Key)
.First();
japhenchen iT邦研究生 5 級 ‧ 2019-08-22 09:55:08 檢舉
如果你真的是要取SID的第一個字母......加個KEY就對了
var uniq = db.Student_infor
.GroupBy(x => x.S_ID)
.Select(y => y.Key.First())
.Distinct();
Rex Chien iT邦新手 4 級 ‧ 2019-08-23 09:20:50 檢舉
應該我下面的回答就可以了,還是同一個 `S_ID` 的其他欄位資料會不同,需要其他判斷條件?

1 個回答

1
Rex Chien
iT邦新手 4 級 ‧ 2019-08-22 10:27:44
最佳解答

不知道你要 distinct 什麼東西,猜測是回傳的資料中不要有重複的 S_ID

var uniqStudents = db.Student_infor
    .GroupBy(info => info.S_ID)
    .Select(info_list => info_list.First());

S_ID 看起來是主鍵?本來就不應該會重複吧XD

我要發表回答

立即登入回答