Предупреждение «Запрос может возвращать неполные данные» должно быть разрешено согласно соглашению [закрыто]C#

Место общения программистов C#
Anonymous
Предупреждение «Запрос может возвращать неполные данные» должно быть разрешено согласно соглашению [закрыто]

Сообщение Anonymous »

В моем DbContext.ConfigureConventions я настроил преобразователь типов для любого типа, который наследуется от определенного базового класса (в моем случае, пользовательской реализации Enum). Он работает правильно: любые свойства моих моделей, которые наследуются от этого базового класса, могут правильно читать и записывать свои значения, и для этого их не нужно .Included как связанные модели.

Код: Выделить всё

protected override void ConfigureConventions(ModelConfigurationBuilder configurationBuilder)
{
// ...

IEnumerable enumTypes; // Assume this is populated with a list of applicable types that all subclass my custom Enum
foreach (var enumType in enumTypes)
{
var converterType = typeof(MyCustomConverter).MakeGenericType(enumType);
configurationBuilder.Properties(enumType).HaveConversion(converterType);
}

// ...
}
Однако ReSharper, похоже, этого не осознает: всякий раз, когда я обращаюсь к любому такому свойству после запроса из базы данных, я получаю предложение компилятора по запросу (

Код: Выделить всё

EntityFramework.NPlusOne.IncompleteDataQuery
) и предупреждение компилятора о доступе к свойству (

Код: Выделить всё

EntityFramework.NPlusOne.IncompleteDataUsage
), говоря, что мне нужно явно загрузить свойство.
Например:

Код: Выделить всё

public void DoSomething(int id)
{
using var context = ContextFactory.CreateDbContext();

// I get the IncompleteDataQuery warning here
var foo = context.Foos.Find(id);

// I get the IncompleteDataUsage warning here
if (foo.MyCustomEnumValue == MyCustomEnumValue.Bar)
{
// ...
}
}
Обратите внимание, что код работает нормально; Мне не нужно явно загружать это свойство из-за конвертера. Но я все еще получаю предупреждения об этом.
Я только что отключил неточные предупреждения одно за другим, но мне интересно, есть ли способ заставить ReSharper исключить из этого предупреждения любые свойства, которые настроены на использование моего преобразователя типов. Например, аннотация базового класса. Документация EF Core пока что не помогла, как и документация ReSharper. Есть идеи?

Вернуться в «C#»