2016-10-31 3 views
0

в C# я хочу вернуться IEnumerable<DataRow> с колонкой с именем iseditLINQ к SQL: если оператор в выберите

мой тип innerResult является IEnumerable<DataRow>

, но у меня есть ошибки

Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<AnonymousType#1>' to 'System.Collections.Generic.IEnumerable<System.Data.DataRow>'. An explicit conversion exists (are you missing a cast?) 

innerResult = (from f in innerResult 

            select new 
            { 

             isedit = (bool?)Convert.ToBoolean(((APS_WorkFlow_Activities).Contains(f.Field<Guid>("ActivityID")) ? false : true)) 
            }); 
+1

Вы можете упростить 'Convert.ToBoolean (((APS_WorkFlow_Activities) .Contains (f.Field ("ActivityID")) ложное: истинно)' в '(APS_WorkFlow_Activities) .Contains (f.Field ! («ActivityID»)) ' – jcruz

+1

' innerResult' объявлен как 'IEnumerable ', но, говоря 'select new {...}', вы генерируете анонимный тип для возврата вместо 'DataRow'. Когда вы говорите вы хотите вернуть 'IEnumerable ' с столбцом с именем isedit ", вы хотите добавить новый столбец к каждому из объектов DataRow в оригинале? – StriplingWarrior

ответ

0

Если innerResult является анонимным типом, как показано ниже, вы можете назначить результат выбора к innerResult. В противном случае вы не можете назначить анонимный тип другому типу. Вы должны объявить новую переменную.

вар innerResult = новый [] {новый {isedit = по умолчанию (BOOL)}}

В противном случае, объявить новую переменную

уаг innerResult2 = (от F в innerResult выбрать новый {isedit = (bool?) Convert.ToBoolean (((APS_WorkFlow_Activities) .Contains (f.Field ("ActivityID")) ? false: true))});