小编Mat*_*son的帖子

从EF 5 Code First Migrations生成完整的SQL脚本

如何使用Entity Framework 5 Code First Migrations创建从初始(空)状态到最新迁移的完整数据库脚本?

博客文章在MSDN博客暗示要做到这一点,但它似乎创建一个空的脚本:

Update-Database -Script -SourceMigration: $InitialDatabase
Run Code Online (Sandbox Code Playgroud)

entity-framework ef-migrations

136
推荐指数
3
解决办法
9万
查看次数

在没有Google Apps的私人频道中通过Google Play商店部署应用?

我正在构建一个Android应用,因各种原因无法在Google Play商店中公开列出.

我找到了有关Google Play专用频道的信息,但如果我理解正确,则只有当您的所有用户都在Google Apps域中时(我的用户不在),才能使用此信息.

是否有任何类似的方法可用于部署我的应用程序(并获得用户轻松安装的好处,更新机制等),或者是我手动发布APK文件的唯一选择?

据我所知,手动发布APK文件是唯一的选择,但这对我来说似乎很奇怪,因为我的情况必须是"私人"业务应用程序的常见问题.

特别是,我担心必须指导用户打开"允许从未知来源安装应用程序"设置的过程看起来不专业.

欢迎任何建议,谢谢!

deployment android google-play

19
推荐指数
1
解决办法
1万
查看次数

有没有办法检测查询使用的数据何时从 Apollo 客户端缓存中逐出?

对于这个长问题,我深表歉意,但我非常感谢您对 Apollo Client 3 中缓存失效和重新获取查询的最佳策略的一些想法/帮助。

背景

首先,关于我想象的场景的一些信息:

  • 有一个Account组件(下面的示例)使用useQueryreact-apollo 中的钩子来获取和显示有关帐户的一些基本信息以及该帐户的交易列表
  • 在应用程序的其他地方,有一个CreateTransactionForm组件使用突变来插入新事务。这是一个单独的组件,它位于组件树中的不同位置,不一定是AccountComponent)
  • 至关重要的是,除了将实际事务插入数据库之外,在服务器上存储事务的过程还有一些重要的副作用:
    • 在插入(按时间顺序)之后发生的所有其他交易都使用新的运行余额更新
    • 使用新的当前余额更新任何相关帐户

我的Account组件的简单版本可能如下所示:

import { gql, useQuery } from '@apollo/client';
import React from 'react';
import { useParams } from 'react-router-dom';

const GET_ACCOUNT_WITH_TRANSACTIONS = gql`
  query getAccountWithTransactions($accountId: ID!) {
    account(accountId: $accountId) {
      _id
      name
      description
      currentBalance
      transactions {
        _id
        date
        amount
        runningBalance
      }
    }
  }
`;

export const Account: React.FunctionComponent = () => {
  const { accountId } …
Run Code Online (Sandbox Code Playgroud)

caching apollo reactjs apollo-client

15
推荐指数
1
解决办法
964
查看次数

GraphQL动态查询构建

我有一个GraphQL服务器,它能够为指定的源(例如,传感器数据)提供时间序列数据.获取传感器数据的示例查询可能是:

query fetchData {
    timeseriesData(sourceId: "source1") {
      data {
        time
        value
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

在我的前端,我希望允许用户选择一个或多个源,并显示一个图表,每个图表都有一行.看起来这可以通过使用这样的查询:

query fetchData {
    series1: timeseriesData(sourceId: "source1") {
      data {
        time
        value
      }
    }
    series2: timeseriesData(sourceId: "source2") {
      data {
        time
        value
      }
    }
}
Run Code Online (Sandbox Code Playgroud)

大多数GraphQL教程似乎都专注于静态查询(例如,唯一改变的是变量,而不是请求的实际形状) - 但在我的情况下,我需要查询本身是动态的(每个都有一个timeseriesData请求)我选择的ids).

我有以下约束:

  1. 修改服务器的架构不是一个选项(例如,我不能将ID数组传递给解析器)
  2. 我的查询是使用模板字符串指定的,例如gql` ...`
  3. 我不想手动将查询构建为字符串,因为这似乎是灾难的一个方法,并且意味着我失去了所有的工具优势(例如自动完成,语法突出显示,linting)

我正在使用的堆栈是:

  • 阿波罗客户端(特别是阿波罗角)
  • 打字稿
  • graphql-tag(用于定义查询)

理想情况下,我想要做的是有一些方法将两个查询合并为一个,这样我就可以按照第一个例子定义它们,然后将它们连接在一个抽象层中,这样我得到一个像第二个例子一样的查询通过电汇发送.

但是我不确定如何实现这一点,因为graphql-tag正在将查询解析为AST,而我正在努力理解以这种方式操作查询是否可行.

有哪些技术可以生成像这样的动态查询,其中查询的形状不是预先知道的?

apollo graphql apollo-client graphql-tag

11
推荐指数
3
解决办法
5249
查看次数

第三方 API 访问的 OAuth 流程

网络上有很多有关 OAuth 2、其不同类型的流程以及在何处/如何使用它们的信息。我发现这些资源中的大多数都讨论了对应用程序的用户进行身份验证,但我很难理解在使用第三方 API 时(即,当我们自己的 API 是用户与其用户之间的“中间人”时)最好/正确的方法是什么。第三方 API 中的数据)。

\n\n

在示例场景和一些图表的帮助下,我将非常感谢您就如何正确实现与第三方 API 的集成以及每种方法的优缺点提供建议/意见。

\n\n

初始点

\n\n

首先,假设我们有一个 Web 应用程序,其结构如下:

\n\n
    \n
  • 前端 - SPA (Angular),由 AWS S3 + Cloudfront 托管
  • \n
  • 后端 - 节点,使用 AWS API Gateway 作为无状态 AWS lambda 函数运行
  • \n
  • Auth0 用于处理身份验证/登录等。前端使用隐式 OAuth2 流来获取 access_tokens,这些令牌存储在本地存储中,并作为标头包含在对后端的所有请求中。
  • \n
  • 也可能是本机移动应用程序,使用相同的后端 API。
  • \n
\n\n

目标

\n\n

现在假设我们希望添加与 Google Sheets 的集成。新功能将允许用户使用自己的 Google 表格(即存储在自己的 Google 帐户中)作为数据源,应用程序可以对该表格进行读写访问。将来可能会有其他集成,因此我假设其他 API 也需要类似的过程。

\n\n

问题陈述

\n\n

除了现有的 OAuth 流程(允许用户登录“MyApp”前端并与“MyApp API”通信)之外,还需要一个额外的 OAuth 流程,以便用户将 MyApp 连接到第三方Google Sheets API

\n\n …

authentication oauth oauth-2.0 google-oauth google-sheets-api

10
推荐指数
1
解决办法
2712
查看次数

在打印网页时指定CSS中的物理尺寸(例如2英寸)

是否有一种可靠的方法来指定CSS中的物理尺寸,以便在打印页面时,我的元素在打印页面上具有特定的大小和位置?

我看到CSS有单位为in和cm,但是(毫不奇怪)当我执行以下操作时,Firefox和Chrome实际上都没有以2x2英寸打印盒子:

.test {
    width: 2in;
    height: 2in;
    border: solid 1px #aaa;
}
Run Code Online (Sandbox Code Playgroud)

我是否过于乐观,希望有一些方法可以指定尺寸并让浏览器根据打印机的分辨率调整打印尺寸?

谢谢.

html css printing

9
推荐指数
2
解决办法
8636
查看次数

D3 v4 Brush 和 Zoom 在同一个元素上(没有鼠标事件冲突)

我的目标是构建一个同时使用d3-zoomd3-brush的 D3 (v4) 图表,如下所示:

  1. 当鼠标位于 x 轴上时,用户可以缩放(使用鼠标滚轮)或平移(通过左右拖动)
  2. 当鼠标位于 y 轴上方时,用户可以缩放(使用鼠标滚轮)或平移(通过上下拖动)
  3. 当鼠标位于图表主体上时,用户可以缩放(使用鼠标滚轮)或刷来将 x 域设置为特定范围

我已经设法在适当的轴上实现了缩放和平移(根据要求 1 和 2),但是在将两者结合在一起以实现要求 3 时遇到了问题。

我根据文档/示例完成了以下操作:

  • 对于刷亮,附加一个gSVG 元素并brush在该元素上调用。该库在其中创建了一个rectwith 类overlay,并附加了适当的鼠标事件以让我在该空间内绘制一个画笔区域。

  • 对于缩放,附加一个rectSVG 元素并zoom在该元素上调用。该库连接了适当的鼠标事件,以允许我在该空间内使用鼠标滚轮上下滚动。

我的问题在于这两种方法的结合。因为这两个zoombrush创建rect和处理鼠标事件,在同一时间只有一个作品。最后创建的 SVG 元素“窃取”了鼠标输入,并且不会将其传播给另一个。我怎样才能让两者在主图表区域很好地一起玩?

我有一个显示问题的示例项目。它基于 Angular 和 TypeScript,但可以按如下方式运行:

  1. https://github.com/mattwilson1024/d3-zoom-and-brush查看我的示例
  2. 通过运行npm install或运行应用程序yarn install,然后npm startyarn start
  3. 打开 http://localhost:4200
  4. 您可以在两个轴上缩放和平移,或刷主图表区域。可缩放区域为绿色和红色以帮助调试
  5. 打开 /src/app/char/chart.component.ts 并取消注释第 196 行。这将移动 x 轴“缩放区域”(矩形)以覆盖整个图表主体。这意味着您可以使用滚轮在图表上的任何位置使用鼠标缩放 x。 …

d3.js

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

实体框架代码首先使用SQL Server同义词

我有这样的情况,我将有多个公司访问我的应用程序的单个实例,但我需要隔离他们的数据,以避免意外地为另一家公司加载数据,并简化每个公司的数据库备份.

理想情况下,我想将数据拆分到不同的数据库中,如下所示:

  • 一个SQL Server数据库,包含所有用户的列表,以及所有用户/公司通用的任何表

  • N个公司特定的数据库,每个数据库具有相同的模式,但每个公司的数据不同.登录时,我会动态选择特定用户公司的数据库

我希望能够查询公司特定的数据表,但是可以在共享数据库上执行连接(例如,我可以将外键存储在公司数据库表中,该表连接到共享表的主键上另一个数据库).

我发现了SQL Server同义词,看起来他们可以完成这项工作,似乎我可以通过在SQL Server Management Studio中使用查询成功地在两个数据库之间加入.

是否可以在Entity Framework Code First中使用同义词表,如果是这样,我的POCO类/ DbContext需要看起来像什么?

谢谢 :)

sql-server entity-framework synonym code-first

8
推荐指数
1
解决办法
4189
查看次数

如何防止实体框架代码中的相关实体的循环加载

我是Entity Framework的新手,我正在尝试学习如何使用Code First从数据库加载实体.

我的模型包含一个用户:

public class User
{
    public int UserID { get; set; }

    [Required]
    public string Name { get; set; }

    // Navigation Properties
    public virtual ICollection<AuditEntry> AuditEntries { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

每个用户都可以拥有一组审计条目,每个条目都包含一条简单的消息:

public class AuditEntry
{
    public int AuditEntryID { get; set; }

    [Required]
    public string Message { get; set; }

    // Navigation Properties
    public int UserID { get; set; }
    public virtual User User { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我有一个DBContext,它只暴露了两个表:

public DbSet<User> Users { get; …
Run Code Online (Sandbox Code Playgroud)

entity-framework

7
推荐指数
1
解决办法
2466
查看次数

使用 dropzone.js 将文件直接上传到 Azure Blob 存储(使用 SAS)

我想使用 dropzone.js 将文件直接上传到 Azure Blob 存储,并使用 SAS(此处的示例)将文件保密。

据我了解,工作流程是:

  1. 用户选择一个文件
  2. dropzone processing事件触发。在事件处理程序中,我调用站点 API 上的一个方法,该方法创建要上传到的 Azure Blob URI,包括 SAS 查询字符串
  3. dropzone 上传 URL 设置为“安全”blob URL
  4. 上传开始

我发现以下 wiki 文章展示了如何动态设置 dropzone URL ( https://github.com/enyo/dropzone/wiki/Set-URL-dynamically )

Dropzone.options.myDropzone = {
  init: function() {
    this.on("processing", function(file) {
      // I need to do an async call here, to get the URL...
      this.options.url = "/some-other-url";
    });
  }
};
Run Code Online (Sandbox Code Playgroud)

问题是上面的例子是同步的。如何延迟上传,直到从我的 web api异步请求 URL ?

谢谢

javascript azure azure-storage-blobs dropzone.js

7
推荐指数
1
解决办法
2505
查看次数