小编Phi*_*ins的帖子

使用LINQ聚合的实体框架来连接字符串?

这对我来说很容易在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世界中似乎并不"正确".

有人在乎这个问题吗?

c# linq aggregate entity-framework-4

14
推荐指数
3
解决办法
4万
查看次数

使用Chrome扩展程序注入远程iframe

对于我的生活,我无法让我的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)

google-chrome-extension content-security-policy

9
推荐指数
1
解决办法
980
查看次数

Visual Studio缺少_references.js文件上的"自动同步Javascript引用"菜单项

如果我在VS2013中创建一个全新的MVC项目,我在_references.js上有一个很好的上下文菜单,它允许我管理我的js文件的自动同步.见下文 -

自动同步工作

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

自动同步无法正常工作

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

visual-studio-2013

7
推荐指数
0
解决办法
574
查看次数