下面的IGrouping结果显示了一些示例表单数据。我在数据库中存储名称/值对以收集表单数据。以下数据是我从填写表单的用户那里收集的基本示例。
我想要一个linq查询或SQL查询,提供此数据的扁平版本。例如csv数据:
FirstName,LastName,Email,EmailVerify,Meta
sdfsdf,sdfsdf,yu@yu.com,yu@yu.com,
记录与EntryKey相关。如何获得上述示例的结果数据?感谢。
答案 0 :(得分:0)
您可以使用XML或JSON序列化来实现此目的。序列化后,您可以非常轻松地将数据转换为纯文本
以下链接可帮助您编写序列化和反序列化代码。
<强>更新强>
要动态获取属性,可以使用ExpandoObject
(使用System.Dynamic命名空间),这将帮助您动态定义属性。生成后,您可以将其序列化为指定的Type。以下是帮助的示例代码。
var xNewExpando = new ExpandoObject() as IDictionary<string, Object>;
foreach (var adv in advocateDetails)
{
xNewExpando.Add(adv.DetailName, adv.DetailValue);
}
var yourString = JsonConvert.SerializeObject(xNewExpando);
答案 1 :(得分:0)
我认为你应该能够做到这样的事情:
var results = db.EntryDetails
.GroupBy(ed => ed.EntryKey)
.ToList()
.Select(ek => new List<List<string>>()
{
ek.Select(gb => gb.DetailName).ToList(),
ek.Select(gb => gb.DetailValue).ToList()
});
.SelectMany(ed => ed)
.ToList();
结果将是List<List<string>>
。
第一行List<>
是每行。
每个列表的内容都是List<string>
列。