小编Jac*_*ler的帖子

实体框架不遵守命令超时

我遇到了基于实体框架的 api 的问题,其中 3rd 方开发人员错误地发送了太大的查询并导致系统性能下降。我已经通知他们停止练习,但我想将查询限制在 1 分钟内,然后将它们切断。

听起来我应该能够在构造函数中设置命令超时(如下所示)。当我使用长查询对其进行测试时,它完全按照之前(3+ 分钟)执行查询,它似乎根本不遵守命令超时。

我做错什么了吗?这不是命令超时的工作方式吗?它是异步的,命令超时是否不适用于异步?任何解决方案或指针将不胜感激。

public class CustomContext : DbContext
{
    public CustomContext(string connectionName)
        : base(connectionName)
    {
        var objectContext = (this as IObjectContextAdapter).ObjectContext;
        objectContext.CommandTimeout = 60;
    }

    public CustomContext(EntityConnection connection)
        : base(connection, contextOwnsConnection: false)
    {
        var objectContext = (this as IObjectContextAdapter).ObjectContext;
        objectContext.CommandTimeout = 60;
    }
}
Run Code Online (Sandbox Code Playgroud)

c# sql entity-framework entity-framework-6

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

C#WebAPI没有正确地序列化动态属性

我正在创建一个新的C#OData4 Web API,其中一个名为Call具有动态属性的类,OData 4允许通过"Open Types".我相信我已经设置了所有内容并正确配置它,但序列化响应不包括动态属性.

我配置错了吗?

public partial class Call 
{
    public int Id { get; set; }
    public string Email { get; set; }
    public IDictionary<string, object> DynamicProperties { get; }
}
Run Code Online (Sandbox Code Playgroud)
public class CallController : ODataController
{
    [EnableQuery]
    public IQueryable<Call> GetCall([FromODataUri] int key)
    {
        return _context.Call.GetAll();
    }
}
Run Code Online (Sandbox Code Playgroud)
public static partial class WebApiConfig
{
    public static void Register(HttpConfiguration config)
    {
        AllowUriOperations(config);

        ODataModelBuilder builder = new ODataConventionModelBuilder();
        builder.ComplexType<Call>();
        var model = builder.GetEdmModel();

        config.MapODataServiceRoute(RoutePrefix.OData4, RoutePrefix.OData4, model);    
    }

    private …
Run Code Online (Sandbox Code Playgroud)

c# odata asp.net-web-api asp.net-web-api2

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