小编Cha*_*han的帖子

EF DBContext配置不关闭连接

我使用的是EF 6.1.0

我在DBEntites下面有自定义DBContex对象

public partial class DbEntities : DbContext
{
    public DbEntities()
        : base("name=DbEntities")
    {
        ////Configuration.LazyLoadingEnabled = true;
        ////Configuration.ProxyCreationEnabled = false;
    }

    //// I have ALL Entites added as below
    ////public virtual IDbSet<CCode> CCodes { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我在上下文对象上有以下操作

using (var context = new DbEntities())
        {
            var entitySet = context.Set<T>();
            var res = entitySet.Where<T>(predicate).ToList();
            if (context.Database.Connection.State == ConnectionState.Open)
            {
                context.Database.Connection.Close();
            }

            return res;
        }
Run Code Online (Sandbox Code Playgroud)

但在处置上下文对象后,我仍然可以看到活动的数据库连接.在连接状态条件下,我可以看到连接已经关闭(连接从未成立).

我使用以下查询来查看SQL上的连接.

select db_name(dbid) , count(*) 'connections count'
from master..sysprocesses
where spid > 50 and …
Run Code Online (Sandbox Code Playgroud)

c# sql sql-server entity-framework

12
推荐指数
1
解决办法
8733
查看次数

带ADO.Net SQLConnection对象的ConfigureAwait(false)

我已经开始ConfigureAwait(false)与所有异步sql对象一起使用。

connection.OpenAsync().ConfigureAwait(false);
cmd.ExecuteNonQueryAsync().ConfigureAwait(false);
Run Code Online (Sandbox Code Playgroud)

但我担心的是,这种方法会产生任何影响吗?

因为这将在线程池中运行,而线程池是一个独立的线程,所以我不确定如果不在单个线程上运行会带来什么后果。

我们的应用程序是wcf服务,它将并行处理1000条记录。

如果有人帮助确定可能存在问题的业务场景,那将是有帮助的。

谢谢

c# sql multithreading async-await configureawait

5
推荐指数
1
解决办法
544
查看次数

在 Azure API 管理入站策略部分获取路由参数

我有一个带有模板参数的 URL。

https://test.azure-api.net/HelperFunction/{siteId}/lots/InventoryItem/{itemId}
Run Code Online (Sandbox Code Playgroud)
https://test.azure-api.net/HelperFunction/122/lots/InventoryItem/12
Run Code Online (Sandbox Code Playgroud)

我想阅读入站策略部分中的模板/路径参数。

我正在尝试如下。但它只会获取查询字符串参数。我想获取路径参数。

 <inbound>
        <set-body>@{
                JObject transBody = new JObject();
                transBody.Add("Arguments", 
                new JObject
                {
                    {"method", context.Request.Method},
                    {"parameters", context.Request.Url.QueryString},
                });

                //Add all json properties as arg
                transBody.Add("UriPath", context.Request.Url.Path);
                return transBody.ToString();
            }</set-body>
        <base />
 </inbound>
Run Code Online (Sandbox Code Playgroud)

我的要求是将路由参数读取为

"siteId" : 122,
"itemId" : 12
Run Code Online (Sandbox Code Playgroud)

任何帮助,将不胜感激。

azure azure-api-management

4
推荐指数
1
解决办法
4825
查看次数