Очевидно, что вы не можете передать ссылку на ваш полный класс сущности в функцию для дальнейшей обработки:
Не работает:
public static string DoWork(this DbFunctions _, object entity, string key)
//...
dbContext.Items.Select(i => new { Entity = i, String = EF.Functions.DoWork(i, i.StringValue) });
Где это будет:
public static string DoWork(this DbFunctions _, string key)
//...
dbContext.Items.Select(i => new { Entity = i, String = EF.Functions.DoWork(i.StringValue) });
Также поддерживаются шаблоны , так что это был бы хороший способ проанализировать вызов и получить тип сущности для модели в RelationalMethodCallTranslatorProvider
.
public static string DoWork<T>(this DbFunctions _, string key)
//...
dbContext.Items.Select(i => new { Entity = i, String = EF.Functions.DoWork<Item>(i.StringValue) });