小编Fra*_*rme的帖子

OData错误:URI中指定的查询无效.该属性不能在查询选项中使用

我正试图让OData端点启动并正常工作,我遇到了这个错误,即使谷歌也没什么可说的.

我已经创建了一个Entity Framework EDMX上下文(数据库优先),让设计者从中生成2个模型.

除了$filter查询失败之外,一切正常.

我可以做得很好:

http://localhost:27164/Projects(6587660)
Run Code Online (Sandbox Code Playgroud)

它检索主ID为6587660的Project.

但任何$filter要求如下:

http://localhost:27164/Projects?$filter=ProjectID eq 6587660
Run Code Online (Sandbox Code Playgroud)

将失败并出现以下错误:

URI中指定的查询无效.属性"ProjectID"不能在$ filter查询选项中使用.

我也尝试过查询其他属性,字符串属性.同样的错误.

我已经检查过EF生成的模型在属性上没有任何属性,但它们没有.

这是我在WebApiConfig.cs模块中的Register方法:

using System.Web.OData.Builder;
using System.Web.OData.Extensions;

public static void Register(HttpConfiguration config)
{
    // Web API configuration and services
    // Configure Web API to use only bearer token authentication.
    config.SuppressDefaultHostAuthentication();
    config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));


    ODataModelBuilder builder = new ODataConventionModelBuilder();
    builder.EntitySet<DB.Project>("Projects");
    config.MapODataServiceRoute(
        routeName: "ODataRoute",
        routePrefix: null,
        model: builder.GetEdmModel()
    );           

}
Run Code Online (Sandbox Code Playgroud)

这是Projects控制器(GetProjects是进行$ filter查询时的被调用方法):

public class ProjectsController : ODataController
{
    private AppContext db = new AppContext(); …
Run Code Online (Sandbox Code Playgroud)

.net c# entity-framework odata asp.net-web-api

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

防止多个服务实例 - 最好的方法?

那么您认为防止C#Windows服务的多个线程同时运行的最佳方法是什么(该服务是否使用了timerOnElapsed事件)?

使用lock()mutex

我似乎无法掌握这个概念mutex,但使用lock()似乎对我的情况很好.

我是否应该花时间学习如何使用mutex

c# windows service multithreading

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

交易死锁,如何正确设计?

所以我正在研究这个实体框架项目,它将被用作DAL的类型,并且在运行压力测试时(通过Thread()开始对实体进行一些更新)并且我得到了这些:

_innerException = {"事务(进程ID 94)在锁资源上与另一个进程死锁,并被选为死锁牺牲品.重新运行事务."}

这是我如何实现类的方法的一些示例:

public class OrderController
{

    public Order Select(long orderID)
    {
        using (var ctx = new BackEndEntities())
        {

            try
            {
                var res = from n in ctx.Orders
                                       .Include("OrderedServices.Professional")
                                       .Include("Agency")
                                       .Include("Agent")
                          where n.OrderID == orderID
                          select n;
                return res.FirstOrDefault();
            }
            catch (Exception ex)
            {
                throw ex;
            }
         }
    }

    public bool Update(Order order)
    {
        using (var ctx = new BackEndEntities())
        {
            try
            {
                order.ModificationDate = DateTime.Now;
                ctx.Orders.Attach(order);
                ctx.SaveChanges();
                return true;
            }
            catch (Exception ex)
            {
                throw ex; …
Run Code Online (Sandbox Code Playgroud)

.net c# multithreading deadlock entity-framework-4.1

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

如何使用通用约束进行这种棘手的向下转换?

我试图在动作过滤器中向下转换一个控制器实例,我有问题这样做.

我有一DefaultController节课:

public abstract partial class DefaultController<T> : Controller where T : IBaseEntity
{

}
Run Code Online (Sandbox Code Playgroud)

IBaseEntity 是:

public interface IBaseEntity
{
    int Id { get; set; }
    DateTime CreatedOn { get; set; }
    DateTime ModifiedOn { get; set; }
    int CreatedBy { get; set; }
    int ModifiedBy { get; set; }
    int OwnerId { get; set; }

}
Run Code Online (Sandbox Code Playgroud)

我有一个控制器的实例,继承DefaultController:

public class WorkflowController : DefaultController<Workflow>
{
}
Run Code Online (Sandbox Code Playgroud)

Workflow是继承BaseEntity哪个实现IBaseEntity.

现在,在我的动作过滤器中,代码明智,不可能知道请求在哪个控制器上运行,所以我试图将它向下转换为 DefaultController

public class …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net-mvc

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

选择器仅在检查/选择元素后才能工作

我在这里有此代码:

$(document).ready(function() {
    debugger;
    $("div[id^='stage_']").click(function (e) { alert('Hello'); });
});
Run Code Online (Sandbox Code Playgroud)

我无法解释的怪异之处在于,当我进入控制台后在进入调试器语句时执行选择器时,它返回一个空数组, []

但是,当我退出并进入页面时,然后在Chrome中按Ctrl-Shift-C开始检查,然后单击一些具有我要查找的ID的div,然后在控制台中再次执行选择器,现在我有我期望的元素。

我什至在这里尝试过,以验证它是否是异步的。加载问题(这是我无法完全控制的系统)。但是仍然,当到达调试器时,选择器不起作用-即使等待了10秒(然后我也很确定div在那里)。我仍然必须进入检查器,以便jQuery识别元素。

$(document).ready(function() {
    //debugger;
    setTimeout(function() {
        debugger;
        $("div[id^='stage_']").click(function (e) { alert('allo'); });
    }, 10000);
});
Run Code Online (Sandbox Code Playgroud)

为什么jQuery只知道我用Chrome的检查器单击的元素?

javascript jquery google-chrome

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

如何在 FormControlLabel 上的标签和控件之间添加填充

我试图拥有一个内联表单,其中标签留给控件,这似乎不是各种表单组件的默认用法。

到目前为止,这已经达到了目的:

<Grid container spacing={0}>
    <Grid item xs={12}>
        <FormControlLabel
            label="ID"
            disabled
            value="42a5936e-9856-42d4-b540-104fd79bcf36"
            labelPlacement="start"
            control={
                <TextField fullWidth name="ID" />
            }
        />
    </Grid>
</Grid>
Run Code Online (Sandbox Code Playgroud)

但标签和控件之间根本没有空间。

这是它的样子

在此输入图像描述

我认为padding-right必须将一些内容添加到标签中,但我不确定使用这些组件将其放在哪里。

reactjs material-ui

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

插件和工作流的抽象类

我在我的插件和工作流中创建了以下两个抽象类:

/// <summary>
/// Base plugin class. Provides access to most often used Xrm resources.
/// </summary>
public abstract class BasePlugin : IPlugin
{

    public IServiceProvider ServiceProvider { get; set; }
    public ITracingService TracingService { get; set; }
    public IPluginExecutionContext PluginContext { get; set; }
    public IOrganizationService Service { get; set; }

    public void Execute(IServiceProvider serviceProvider)
    {
        ServiceProvider = serviceProvider;
        TracingService =
            (ITracingService)serviceProvider.GetService(typeof(ITracingService));

        PluginContext = (IPluginExecutionContext)
            serviceProvider.GetService(typeof(IPluginExecutionContext));

        IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
        Service = serviceFactory.CreateOrganizationService(PluginContext.UserId);

        ExecutePluginLogic();
    }

    public virtual void ExecutePluginLogic() …
Run Code Online (Sandbox Code Playgroud)

.net c# dynamics-crm-2011 dynamics-crm-2016

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

无法在单元格渲染器中使用 ngIf

我试图根据自定义单元格渲染器中的各种条件显示或隐藏按钮。

这是我的渲染器的模板:

<div class="btn-toolbar" style="justify-content: flex-start; display: flex;">
    <button (click)="editStage()" type="button" class="btn-xs btn btn-primary btn-default btn-space"><span class="fas fa-edit"></span></button>
    <button (click)="gotoSteps()" type="button" class="btn-xs btn btn-primary btn-default btn-space"><span class="fas fa-code-branch"></span></button>
    <button *ngIf="stage.order > 0 && nbrStages > 1" (click)="moveUp()" type="button" class="btn-xs btn btn-primary btn-default btn-space"><span class="fas fa-arrow-up"></span></button>
    <button *ngIf="orderPlusOne < nbrStages && nbrStages > 1" (click)="moveDown()" type="button" class="btn-xs btn btn-primary btn-default btn-space"><span class="fas fa-arrow-down"></span></button>
   <button (click)="deleteStage()" type="button" class="btn-xs btn btn-primary btn-default btn-space"><span class="fa fa-trash-alt"></span></button>
</div>
Run Code Online (Sandbox Code Playgroud)

这是组件代码

@Component({
    selector: 'app-workflow-stage-buttons',
    templateUrl: './workflow-stage-buttons.component.html',
    styleUrls: …
Run Code Online (Sandbox Code Playgroud)

ag-grid angular angular9

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

如何在一条线上做到这一点?

我正在考虑整理这一点,但我对C#有点新意

ResponseList responsesList = new ResponseList();
PagedResponseList pagedResponsesList = new PagedResponseList();
responsesList = responseService.ListSurveyResponses(1000);
pagedResponsesList = responsesList.ResultData;
Run Code Online (Sandbox Code Playgroud)

这可能是一个简单的方法,但是这个单行所需的语法让我感到安慰.

c#

3
推荐指数
2
解决办法
104
查看次数

在 CosmosDB 中使用 CosmosClient 进行分页

我正在尝试使用 SDK v3CosmosClient而不是旧的DocumentClient.

这样做的原因是它似乎DocumentClient不能很好地转换包含空间函数的 LINQ 查询(即:使用时,Within()我会从 DocumentClient 收到一个错误,说明未实现这些方法)。

分页适用DocumentClient.CreateDocumentQuery<T>于以下情况:

var query = DocumentClient.CreateDocumentQuery<T>(UriFactory.CreateDocumentCollectionUri("master", "features"), feedOptions)
                .Where(t => t.Type == typeof(T).Name)
                .Where(pred)
                .AsDocumentQuery();

string queryContinuationToken = null;
var page = await query.ExecuteNextAsync<T>();
if (query.HasMoreResults)
    queryContinuationToken = page.ResponseContinuation;
Run Code Online (Sandbox Code Playgroud)

我不知道在哪里收集使用CosmosClient及其Container类的延续令牌:

QueryRequestOptions options = new QueryRequestOptions();
options.MaxItemCount = maxRecords;

FeedIterator<T> feed;

if (continuationToken == "")
    feed = Container.GetItemLinqQueryable<T>(true, null, options).Where(x => x.Type == typeof(T).Name).Where(pred).ToFeedIterator();
else
    feed = Container.GetItemLinqQueryable<T>(true, continuationToken, options).Where(x …
Run Code Online (Sandbox Code Playgroud)

c# azure-cosmosdb asp.net-core-3.0

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