C# 如何从sql server中选择二维数据

C# 如何从sql server中选择二维数据,c#,sql,C#,Sql,我有一个包含以下数据的sql server表: PrimaryKey ForeignKey DataType Value 1 1 Actor abc 2 1 Movie efg 3 1 Movie hij 4 2 Actor mno 5 2

我有一个包含以下数据的sql server表:

PrimaryKey  ForeignKey   DataType   Value 
1           1            Actor      abc
2           1            Movie      efg
3           1            Movie      hij
4           2            Actor      mno
5           2            Movie      pqr
6           2            Movie      stu
7           2            Movie      vwx
我想从这个表中选择数据并加载一个名为Actors的Csharp类。该类有一个名为ActorName的属性和演员的电影集合。本质上,我必须用Value列中的数据填充ActorName,并从Value列中收集演员的所有电影名称,然后填充集合。我不知道如何做到这一点,尤其是如何编写适当的SQLSELECT语句


谢谢

正如其他人指出的那样,您需要重构数据库。如果不可能,可以发出以下SQL语句,该语句使用自联接:

这将返回类似于

Actor    Movie
abc      efg
abc      hij
mno      pqr
mno      stu
etcetera
制作一些SQL表

1-电影电影ID、电影名称

2-演员ActorId、电影ID、演员姓名

这两个表应该有关系。Actors.MovidId应连接到Movies.MovieId

我建议你使用

var retVal=来自dataContext中的s。电影选择s.ToList

retVal返回Movies表,这意味着您获得了MovieId、Movie\u Name


然后你可以用这个列表做任何事情。检查这里

我是否了解您的演员和电影在同一张表中?另外,外键与什么有关?您可能需要重构数据库。我知道演员和他的电影之间的关系在哪里?我不会将MovieId放在演员表中。最好有一个链接表:MovieId,ActorId@PaulG我知道,有很多方法可以做到这一点。你是对的,这可能是解决办法:我只是建议了一个场景
Actor    Movie
abc      efg
abc      hij
mno      pqr
mno      stu
etcetera