这对我来说很容易在TSQL中执行,但我只是坐在这里,试着让它在EF4中工作!
我有一个表,我们称之为TestData.它有字段,比如:DataTypeID,Name,DataValue.
DataTypeID, Name, DataValue
1,"Data 1","Value1"
1,"Data 1","Value2"
2,"Data 1","Value3"
3,"Data 1","Value4"
Run Code Online (Sandbox Code Playgroud)
我想对DataID/Name进行分组,并将DataValue连接成CSV字符串.期望的结果应包含 -
DataTypeID, Name, DataValues
1,"Data 1","Value1,Value2"
2,"Data 1","Value3"
3,"Data 1","Value4"
Run Code Online (Sandbox Code Playgroud)
现在,我正在努力做到这一点 -
var query = (from t in context.TestData
group h by new { DataTypeID = h.DataTypeID, Name = h.Name } into g
select new
{
DataTypeID = g.Key.DataTypeID,
Name = g.Key.Name,
DataValues = (string)g.Aggregate("", (a, b) => (a != "" ? "," : "") + b.DataValue),
}).ToList()
Run Code Online (Sandbox Code Playgroud)
问题是LINQ to Entities不知道如何将其转换为SQL.这是3个LINQ查询联合的一部分,我真的希望它保持这种方式.我想我可以检索数据,然后再执行聚合.出于性能原因,这对我的应用程序无效.我还考虑过使用SQL服务器功能.但这在EF4世界中似乎并不"正确".
有人在乎这个问题吗?
对于我的生活,我无法让我的Chrome扩展程序显示带有远程网址的iframe.
我在控制台中看到以下消息 -
拒绝构建" https://www.example.com/ ",因为它违反了以下内容安全策略指令:"child-src'self'".请注意,'frame-src'未明确设置,因此'child-src'用作后备.
我在这里找到了一个解决方案(将iframe注入到具有限制性内容安全策略的页面中),这需要注入一个本地iframe,然后comatins引用远程URL的另一个iframe.这应该绕过声音安全策略.但由于某种原因,它似乎不适用于我的情况.我错过了什么或改变了镀铬安全政策?
以下是我的扩展程序中与此问题相关的部分内容.注意 - 这段代码并不是最漂亮的,因为我一直在努力让它发挥作用.
现在这种方式的工作方式是background.js向inject.js发送一条消息.inject.js插入第一个iframe,引用本地文件infobar.html.此页面是我们的主要用户界面,我们希望将iframe中显示的远程html页面作为此页面的一部分.然后infobar.js插入一个引用本地文件frame.html的iframe.最后,frame.html将iframe硬编码到我们的远程网址.
根据之前的回答,只有第一个iframe应该受内容安全策略的约束.但是,这似乎并非如此,因为引用example.com的实际上是3个iframe深度.
的manifest.json
{
...
"content_security_policy": "script-src 'self'; object-src 'self'; frame-src https://www.example.com; child-src https://www.example.com",
"background": {
"scripts": [
"js/jquery/jquery.min.js",
"src/bg/background.min.js"
],
"persistent": true
},
...
"content_scripts": [
{
...
"css": [
...
"src/inject/inject.min.css"
],
"js": [
...
"src/inject/inject.min.js"
]
}
],
"externally_connectable": {
"matches": [
"*://localhost/*",
"*://*.example.com/*
]
},
"web_accessible_resources": [
"src/inject/inject.html",
"src/inject/infobar.html",
"src/inject/infobar.min.js",
"src/inject/frame.html"
],
"sandbox": {
"pages": [
"src/inject/infobar.html",
"src/inject/frame.html"
]
}
}
Run Code Online (Sandbox Code Playgroud)
inject.js
var iframe …Run Code Online (Sandbox Code Playgroud) 如果我在VS2013中创建一个全新的MVC项目,我在_references.js上有一个很好的上下文菜单,它允许我管理我的js文件的自动同步.见下文 -

在我现有的MVC项目中,该竞赛菜单不包括这些项目.见下文 -

我比较了项目文件,没有看到任何明显的差异.那可能导致这个问题呢?