0

是否可以將列(以逗號分隔存儲)轉換爲EDMX設計器中的另一個實體?使用edmx將逗號分隔的項目轉換爲實體

表結構

student 
    id 
    name 
    subjects << this is the comma delimited column (1,2,3,10) 

subject 
    id 
    name 

EDMX設計結構將是

student 
    id 
    name 

student_subject 
    studentId 
    subjectid 

subject 
    id 
    name 

如果是這樣,可有人點我就如何做到這一點的EF設計。

注:我不能改變表結構和我使用的數據庫第一

感謝

回答

0

有沒有辦法做到這一點。更糟糕的是:在SQL中,使用IN子句獲取主題可能是可能的,但是對於linq,您甚至沒有獲得該選項。恐怕剩下的就是一個艱苦的LINQ到對象的操作,你首先從數據庫中抓取Student,然後在int陣列分析的主題,最後用Contains查詢搶Subject S:

var subjectIds = student.Subjects 
    .Split(",".ToCharArray(), StringSplitOptions.RemoveEmptyEntries) 
    .Select (x => int.Parse(x)); 

var subjects = context.Subjects.Where(s => subjectIds.Contains(s.Id)); 

(並且不要忘記將建築師作爲學生髮送給主題爲「數據庫設計」的課程)

相關問題