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)); 

(并且不要忘记将建筑师作为学生发送给主题为“数据库设计”的课程)

相关问题