Решарпер назвал аргументы для методов, но положение для деревьев выражений - PullRequest
1 голос
/ 02 июля 2019

Мы хотим использовать именованные аргументы для методов, поэтому я изменил свои настройки на это:

enter image description here

Когда я применил этот стиль, он поставилименованные параметры для всех моих методов.Но он также обновил любые выражения linq , которые у меня были, что приводит к этой ошибке:

Дерево выражений может не содержать спецификацию именованного аргумента

Какя могу заставить resharper игнорировать выражения linq?

Вот некоторый код, прежде чем я применил стиль:

public class MessageService : Service<Message>, IMessageService
{
    public MessageService(DbContext context) : base(context) { }

    public IQueryable<Message> List(string status) => List().Where(m => m.Status.Equals(status)).OrderBy(m => m.NiceEndpoint.StartsWith("PSC") ? 0 : 1).ThenBy(m => m.DateCreated);
    public IQueryable<Message> ListByType(string type, string status) => List().Where(m => m.Type.Equals(type, StringComparison.OrdinalIgnoreCase) && m.Status.Equals(status)).OrderBy(m => m.NiceEndpoint.StartsWith("PSC") ? 0 : 1).ThenBy(m => m.DateCreated);
    public IQueryable<Message> ListByEndpoint(string endpoint, string status) => List().Where(m => m.Type.Equals(endpoint, StringComparison.OrdinalIgnoreCase) && m.Status.Equals(status, StringComparison.OrdinalIgnoreCase)).OrderBy(m => m.NiceEndpoint.StartsWith("PSC") ? 0 : 1).ThenBy(m => m.DateCreated);
    public async Task<Message> GetAsync(string id) => await List().SingleOrDefaultAsync(m => m.Id.Equals(id));
}

И когда я применяю стиль кода выше, я получаю это:

public class MessageService : Service<Message>, IMessageService
{
    public MessageService(DbContext context) : base(context: context) { }

    public IQueryable<Message> List(string status) => List().Where(m => m.Status.Equals(value: status)).OrderBy(m => m.NiceEndpoint.StartsWith("PSC") ? 0 : 1).ThenBy(m => m.DateCreated);
    public IQueryable<Message> ListByType(string type, string status) => List().Where(m => m.Type.Equals(value: type, comparisonType: StringComparison.OrdinalIgnoreCase) && m.Status.Equals(value: status)).OrderBy(m => m.NiceEndpoint.StartsWith("PSC") ? 0 : 1).ThenBy(m => m.DateCreated);
    public IQueryable<Message> ListByEndpoint(string endpoint, string status) => List().Where(m => m.Type.Equals(value: endpoint, comparisonType: StringComparison.OrdinalIgnoreCase) && m.Status.Equals(value: status, comparisonType: StringComparison.OrdinalIgnoreCase)).OrderBy(m => m.NiceEndpoint.StartsWith("PSC") ? 0 : 1).ThenBy(m => m.DateCreated);
    public async Task<Message> GetAsync(string id) => await List().SingleOrDefaultAsync(m => m.Id.Equals(value: id));
}

Как видите, он добавил именованные аргументы в выражения linq, которые не компилируются ....

1 Ответ

2 голосов
/ 04 июля 2019

Эта ошибка должна быть исправлена ​​в ReSharper 2019.1, пожалуйста, обновите

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...