0

我有一个表单,它需要从我正在使用 LLBLGen DataAccessAdapter 访问的数据库中填充下拉菜单(文本和值)。
如果这提供了任何其他有用的信息或选项,我正在使用 Telerik。

有没有一种方法可以通用地做到这一点,以便我可以简单地调用类似的东西:

DropDown.DataSource = GetEntityCollection<OrderEntity>();

或者

DropDown.DataSource = GetEntityCollection(OrderEntity);

我最初试图这样做,如下所示,但我遇到的这个想法的任何版本似乎都无法解释我的整个场景。由于我需要将类型作为泛型或参数传入,因此我不能将其用作EntityCollection<>需要的类型(即 EntityBase2)。

public static object GetEntityCollection<T>()  //Or
{
    using (DataAccessAdapter adapter = new DataAccessAdapter(CONNECTION))
    {
        EntityCollection<typeof(T)> collection = new EntityCollection<typeof(T)>();
        try
        {
            adapter.FetchEntityCollection(collection, null);
        }
        catch
        {

        }

        return collection;
    }
}

如果这不能直接实现,是否有更好的方法将其拆分以避免为我需要获取的每个数据库实体重写太多?

4

1 回答 1

1
public static IEntityCollection2 GetEntityCollection<T>() where T : EntityBase2
{
    using (DataAccessAdapter adapter = new DataAccessAdapter())
    {
        IEntityCollection2 collection = new EntityCollection<T> ();
        try
        {
            adapter.FetchEntityCollection(collection, null);
        }
        catch
        {
            //Log Exception
        }

        return collection;
    }
}
于 2017-01-03T21:54:04.433 回答