小编Jac*_*ert的帖子

实体框架SaveChanges()与SaveChangesAsync()和Find()与FindAsync()

我一直在寻找上面2对之间的差异,但没有发现任何文章清楚地解释它以及何时使用这一个或另一个.

那么SaveChanges()和之间的区别是什么SaveChangesAsync()
之间Find()FindAsync()

在服务器端,当我们使用Async方法时,我们还需要添加await.因此,我不认为它在服务器端是异步的.

它只会阻止客户端浏览器上的UI阻止吗?或者它们之间有任何利弊吗?

c# entity-framework async-await

75
推荐指数
2
解决办法
6万
查看次数

找不到类型的构造函数

例外消息:Constructor on type StateLog not found.

我有以下代码,不适用于只有一个类:

        List<T> list = new List<T>();
        string line;
        string[] lines;

        HttpWebResponse resp = (HttpWebResponse)HttpWebRequest.Create(requestURL).GetResponse();

        using (var reader = new StreamReader(resp.GetResponseStream()))
        {
            while ((line = reader.ReadLine()) != null)
            {
                lines = line.Split(splitParams);
                list.Add((T)Activator.CreateInstance(typeof(T), lines));
            }
        }
Run Code Online (Sandbox Code Playgroud)

它不起作用的类的构造函数与它工作的其他类完全相同.唯一的区别是这个类将传递16个参数而不是2-5.构造函数看起来像这样:

    public StateLog(string[] line)
    {
        try
        {
            SessionID = long.Parse(line[0]);
            AgentNumber = int.Parse(line[1]);
            StateIndex = int.Parse(line[5]);
            ....
        }
        catch (ArgumentNullException anex)
        {
            ....
        }
    }
Run Code Online (Sandbox Code Playgroud)

就像我说的,它适用于使用它的其他5个类,唯一的区别是输入的数量.

c# constructor constructor-exception

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

如何取消Task.WhenAll?

Currenly使用以下代码等待完成任务的集合.但是,我现在有一种情况,我希望能够通过取消令牌取消/中止WhenAll调用.我该怎么办呢?

  Dim TaskCollection As New List(Of Tasks.Task)
  For x As Integer = 1 To Threads
    Dim NewTask As Tasks.Task = TaskHandler.Delegates(DelegateKey).Invoke(Me, Proxies, TotalParams).ContinueWith(Sub() ThreadFinished())
    TaskCollection.Add(NewTask)
  Next

  Await Tasks.Task.WhenAll(TaskCollection)
Run Code Online (Sandbox Code Playgroud)

我假设它会接下来的代码,但是我不确定'XXX'中会出现什么.

Await Tasks.Task.WhenAny(Tasks.Task.WhenAll(TaskCollection), XXX)
Run Code Online (Sandbox Code Playgroud)

.net vb.net task-parallel-library

18
推荐指数
1
解决办法
7034
查看次数

在上下文中找不到类型,可能的映射问题

我正在尝试使用EntityFramework.BulkInsert扩展程序,但我一直在例外Type 'MyEntity.CallDetail' is not found in context 'MyEntity.MyEntities'.我跟踪这个例外DBMapping在类EntityFramework.MappingAPI.抛出它的方法是:

    public IEntityMap this[string typeFullName]
    {
        get
        {
            if (!_tableMappings.ContainsKey(typeFullName))
                throw new Exception("Type '" + typeFullName + "' is not found in context '" + _contextTypeName + "'");

            return _tableMappings[typeFullName];
        }
    }
Run Code Online (Sandbox Code Playgroud)

我的问题是,EntityFramework.MappingAPI这是我的代码中的错误吗?

我的上下文类:

public partial class MyEntities : DbContext
{
    public MyEntities()
        : base("name=MyEntities")
    {
    }

    protected override void OnModelCreating(DbModelBuilder modelBuilder)
    {
        throw new UnintentionalCodeFirstException();
    }

    public virtual DbSet<CallDetail> CallDetail { get; …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework-6

7
推荐指数
2
解决办法
2188
查看次数

在不同的命令中创建和填充临时表

我遇到了一个问题,我#muMapping在一个表中创建了一个临时表SqlCommand,然后用另一个表填充它SqlCommand。第二个命令抛出异常cmd.ExecutNonQuery()并显示消息:

Invalid object name '#muMapping'.
Statement(s) could not be prepared.
Run Code Online (Sandbox Code Playgroud)

两个命令使用相同的SqlConnection,并且我开始并指定要使用的事务,这样SqlCommand就不会隐式开始和提交事务。

代码:

using (var conn = new SqlConnection(connString))
{
    await OpenConnection(conn);
    var trans = conn.BeginTransaction();

    using (SqlCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = "CREATE TABLE #muMapping ( mu_id INT NOT NULL PRIMARY KEY, facility NVARCHAR(100) NOT NULL, team NVARCHAR(100) NOT NULL );";
        cmd.Transaction = trans;

        await cmd.ExecuteNonQueryAsync();
    }

    using (SqlCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = "INSERT INTO …
Run Code Online (Sandbox Code Playgroud)

c# sql-server

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

类型区间的输入语法无效

我遇到一个问题,我无法在postgresql中添加间隔到日期.在MySql中我会这样做:

date_add('2015-02-02', interval -46 day)
Run Code Online (Sandbox Code Playgroud)

与postgresql中的相应语句是:

'2015-02-02' + -46 * interval '1 day'
Run Code Online (Sandbox Code Playgroud)

但是,当我这样做时,我得到一个错误:

[Err] ERROR:  invalid input syntax for type interval: "2015-02-02"
Run Code Online (Sandbox Code Playgroud)

如果我删除该+ -46 * interval '1 day'语句的部分,它按预期工作.

简化查询:

SELECT
    cd.date_sort_prequeue_start AS date,
    SUM(CASE WHEN cd.call_conclusion='Answered' THEN 1 ELSE 0 END) AS calls_answered
FROM 
    data_warehouse.call_detail AS cd
    INNER JOIN data_warehouse.users_history AS uh ON cd.users_history_id=uh.id
WHERE 
    cd.date_sort_prequeue_start>= '2015-02-02' + (-46 * INTERVAL '1 day') 
    AND cd.date_sort_prequeue_start<'2015-02-02' 
    AND cd.call_type='I' AND uh.team='TeamOne'
GROUP BY 
    cd.date_sort_prequeue_start
ORDER BY 
    cd.date_sort_prequeue_start;
Run Code Online (Sandbox Code Playgroud)

postgresql

5
推荐指数
2
解决办法
9036
查看次数

逃离$ snippet

我试图逃避$我的片段中的角色,但我似乎无法弄清楚它.

如果我\$看起来像我应该来自文档,我得到错误:

file: path/to/snippets/php.json'
severity: 'Error'
message: 'Invalid escape character in string'
Run Code Online (Sandbox Code Playgroud)

并没有$出现在我的片段中.

如果我使用$$这个答案中找到的,我得到一个$出现,但它认为紧接着的文本是一个tabstop.

如果我使用$\它有效,但我必须有一个字符,它是紧随其后的转义序列的一部分.所以,如果我想$factory,我需要做$\ffactory.\f似乎是最好的,因为它不会影响我的代码段的布局.

我很确定我错过了这里需要做的事情.

我的片段供参考:

"factory" :{
    "prefix": "factory",
    "body": [
        "\$factory->define($1, function (Faker\\Generator \$faker){",
        "\treturn [",
        "\t\t$2,",
        "\t];", 
        "}"
    ],
    "description": "Creates Model factory"
},
Run Code Online (Sandbox Code Playgroud)

code-snippets visual-studio-code

2
推荐指数
1
解决办法
858
查看次数

指定的域名标识符无效

在尝试创建AWS::ApiGateway::BasePathMapping通过CloudFormation时,我收到以下错误:

Invalid domain name identifier specified
Run Code Online (Sandbox Code Playgroud)

以下是我的CloudFormation模板应该创建的部分AWS::ApiGateway::BasePathMapping:

{
    "Parameters": {
        "ApiDomainName": {
            "Description": "The domain name for the API",
            "Type": "String"
        }
    },
    "Resources": {
        "ApiBasePathMapping": {
            "Type": "AWS::ApiGateway::BasePathMapping",
            "Properties": {
                "DomainName": {
                    "Ref": "ApiDomainName"   
                },
                "RestApiId": {
                    "Ref": "RepositoryApi"
                },
                "Stage": {
                    "Ref": "ApiProductionStage"
                }
            },
            "DependsOn": [
                "ApiProductionStage"
            ]
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

文件并没有提及,它需要什么特别的DomainName,但该资源的文档似乎缺乏一些信息(它没有列出,例如产出,即使是有Distribution Domain Name作为例子创建).

堆栈的其余部分按预期工作.我试图将此资源添加为更改集.我拥有我想要使用的域名,并且我已在ACM中为此域创建了证书.

amazon-web-services aws-cloudformation aws-api-gateway

1
推荐指数
2
解决办法
4124
查看次数