возвращая ObjectQuery <T>из objectQuery с использованием отражения - PullRequest
0 голосов
/ 21 ноября 2011

У меня есть один метод, который возвращает объект ObjectQuery в этом объекте ObjectQuery, тип объекта - ObjectQuery, теперь я хочу включить таблицу в этот объект, используя отражение, я вызвал метод Включить, используя отражение для этого, но я получаюошибка может кто-нибудь подскажите пожалуйста ошибку.Вот пример кода.

ObjectQuery objTest = LoadEntitiy(entites,entityClassType);


public ObjectQuery LoadEntitiy(ClientEntities entities, Type entityClasstype)
        {
            PropertyInfo pi = entities.GetType().GetProperties().First(item => item.Name == entityClasstype.Name.ToString());
            Object obj = pi.GetValue(entities, null);
            Type objContext = obj.GetType();
            return (ObjectQuery)obj;
        }

Теперь я вызываю метод для его включения, используя отражение, которое здесь

Type lstType = typeof(ObjectQuery<>); 
Type constructedType = lstType.MakeGenericType(typeof(ObjectQuery<>)); 
MethodInfo addListItemMethod = constructedType.GetMethod("Include"); 
addListItemMethod.Invoke(objTest, new object[] {"tablename" });

Ответы [ 2 ]

0 голосов
/ 22 ноября 2011
Type lstType = typeof(ObjectQuery<>); 
Type constructedType = lstType.MakeGenericType(typeof(T(which u want to send as parameter))); 
MethodInfo addListItemMethod = constructedType.GetMethod("Include"); 
object objtest = addListItemMethod.Invoke(objTest, new object[] {"tblname" });

Теперь объект содержит все имена таблиц, которые вы хотите включить.

0 голосов
/ 22 ноября 2011

Кажется, что вы хотите определить соглашение, чтобы всегда "включать" определенный набор данных.

Это соглашение обычно называется быстрой загрузкой, и есть альтернативы, такие как отложенная загрузка.

EF 4.1 или выше уже включает в себя функциональность, чтобы сделать это для вас, см. http://msdn.microsoft.com/en-us/library/gg715120(v=vs.103).aspx

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