C# 转换列中的行
我正在使用NHibernate开发一个asp.net mvc应用程序,我有一个查询,我想知道如何转换列中的行 我有一个动态系统,模型如下:C# 转换列中的行,c#,asp.net-mvc,nhibernate,C#,Asp.net Mvc,Nhibernate,我正在使用NHibernate开发一个asp.net mvc应用程序,我有一个查询,我想知道如何转换列中的行 我有一个动态系统,模型如下: // It's a kind of metadata public class Field { public virtual long Id { get; set; } public virtual string Name { get; set; } } // the value is here with respective field pu
// It's a kind of metadata
public class Field
{
public virtual long Id { get; set; }
public virtual string Name { get; set; }
}
// the value is here with respective field
public class FieldValue
{
public virtual long Id { get; set; }
public virtual Field Field { get; set; }
public virtual string Value { get; set; }
}
我想知道,如果列是字段对象,值是字段值对象,我该如何得到结果,我应该创建一个ViewModel吗?还是用asp.net mvc实现的方法 我可以通过查询得到如下结果:
// It's a kind of metadata
public class Field
{
public virtual long Id { get; set; }
public virtual string Name { get; set; }
}
// the value is here with respective field
public class FieldValue
{
public virtual long Id { get; set; }
public virtual Field Field { get; set; }
public virtual string Value { get; set; }
}
但是我想做这样的查询(或者在asp.net mvc上创建视图结果的方法):
谢谢我不清楚这个问题。如果要将行转换为列,可以使用pivot。但我建议不要对resultset进行转置操作,而是让它返回转置后的结果集。我的意思是在查询本身中处理行到列的转换我认为您需要熟悉GroupBy()。如果按字段分组,则“分组”一个字段的所有值,然后移动到下一个值。伪代码如下所示
@model IEnumerable<FieldValue>
foreach(var fields in Model.GroupBy(x=>x.Field.Name){
<h2>fields.key</h2>
<ul>
foreach(var fieldValue in fields){
<li>@fieldValue.Value</li>
}
</ul>
}
@model IEnumerable
foreach(Model.GroupBy(x=>x.Field.Name)中的变量字段){
fields.key
foreach(字段中的变量字段值){
- @字段值。值
}
}
这应该会导致类似于
字段1
- 某些值1
- 一些值2
- 一些价值3
- 一些价值4
通过使用这种方法,您可以控制格式设置,以获得所需的输出。“列是字段对象,值是字段值对象”仍然不清楚这意味着什么?你是说pivot从查询返回的结果集?嗨,伙计们,对不起,看一下我的编辑,我添加了一些图像以更好地说明问题!谢谢,嗨,我不确定这是否可能,但看一下我的编辑,我添加了一些图像。谢谢@Tommy,我将稍后再试,然后再检查您的awser.:)