Универсальный метод выбора с привязкой данных к ObjectDataSource?

#.net #generics #data-binding #entity #objectdatasource

#.net #общие положения #привязка данных #сущность #objectdatasource

Вопрос:

На данный момент это своего рода гипотетическая ситуация, но мне интересно, возможно ли это.

Если бы у меня был подобный метод:

 public List<T> SelectEntitiesWithWhere<T>(Func<T, bool> where) where T : EntityObject
{
    return this.ObjectContext.CreateObjectSet<T>().Where(where).ToList();
}
  

Возможно ли вызвать этот метод в ObjectDataSource, привязанном к базе данных?
Возможно, какой-то код, подобный этому:

 <asp:ObjectDataSource ID="MyODS" runat="server" DataObjectTypeName="MyProgram.EntityFramework.MyEntity"
SelectMethod="SelectEntityWithWhere" TypeName="MyProgram.BusinessLayer.MyCode">
<SelectParameters>
    <asp:Parameter Name="where" Direction="Input" DefaultValue="t => t.SomeContactId == contactId" />
</SelectParameters>
  

Я знаю, что это не совсем так, как это было бы, но есть ли какое-то решение этой проблемы? Если бы был задействован пользовательский код, что бы для этого потребовалось?

Ответ №1:

Похоже, вы можете частично решить проблему, перенеся «универсальность» с метода на уровень класса — в соответствии с этой информацией. Но это все еще не решает проблему вашего требования к значению по умолчанию.

TLDR: То, что вы хотите, невозможно.