在MVC3中的视图上使用Lambda表达式

时间:2012-05-02 18:39:42

标签: asp.net-mvc-3 c#-4.0 entity-framework-4.1

我想要克服的情况看似简单,但我没有得到我想要的结果。我有一个EDMX文件作为我的特定应用程序的模型,并使用Razor引擎。

在EDMX文件中,我有一个视图,它是来自几个表的数据汇总,如下所示:

1 1 1

1 2 2

1 3 3

2 1 1

2 2 2

3 1 1

所以前三个记录属于详细信息1,后两个记录属于详细信息2,最终记录属于详细信息3.但是我想“转”这个数据,以便它在网上显示如下:

1

--- 1

--- 2

--- 3

2

--- 1

--- 2

3

--- 1

在我看来,我正在做一些非常基本的事情:

 @{
     foreach(var item in Model){
         var items = Model.Where(i => i.ID == item.ID);
         foreach(var itm in items){
           //construct UI loop
         }
     }
  }

我遇到的问题是,当Lambda表达式返回正确的行数时,'items'总是包含重复n次的'item'的值,其中n是与给定ID相关联的行数

有人可以解释我做错了什么以及为什么这不起作用,因为我认为应该这样做?

感谢。

1 个答案:

答案 0 :(得分:0)

提供的代码是正确的。这里的问题是,如果EDMX文件中的记录具有相同的EntityKey,则它们被视为相同的记录并显示为这样。这是我遇到的问题。我在视图中添加了一个GUID列,并从视图中的其他列中删除了EntityKeys,上面的代码运行正常。