hamid_kha
یک شنبه 26 خرداد 1392, 13:51 عصر
با سلام
بنده یه کوئری با sql نوشتم و با برنامه linqer هم کدها رو با linq بازنویسی کردم مشکلی که وجود داره اینه که توی برنامه linqer هم کد sql و هم linq درست جواب میده ولی وقتی میخوام کامپایل کنم توی linqer با پیغام زیر مواجه میشم:
Error Compiling Expression: Error Compiling Expression: Delegate 'System.Func<eShop.Model.Users,int,bool>' does not take 1 arguments
Cannot convert lambda expression to type 'string' because it is not a delegate type
'System.Linq.IQueryable<AnonymousType#1>' does not contain a definition for 'Contains' and the best extension method overload 'System.Linq.ParallelEnumerable.Contains<TSource>(System.Linq.ParallelQuery<TSource>, TSource)' has some invalid arguments
Instance argument: cannot convert from 'System.Linq.IQueryable<AnonymousType#1>' to 'System.Linq.ParallelQuery<AnonymousType#2>'
مشخصات جدولها:
جدولUsers شامل فیلدهای:UserID,Username,RoleID
و جدول Activities شامل فیلدهای:ActivityID,ArtistID,....
کوئری که میخوام اینه:
لیست کاربرانی رو میخام برگردونه که در جدول Activities رکوردی را ثبت نکرده اند:
توی sql:
select Username,RoleID from Users
where RoleID=2 AND UserID not in(select ArtistID from Activities)
اینم کد linq که بازنویسی شده توسط linqer:
from users in DataContext.Users
where
users.RoleID == 2 &&
(from activities in DataContext.Activities
select new {
activities.ArtistID
}).Contains(new { users.UserID })
select new {
users.Username,
users.RoleID
}
بنده یه کوئری با sql نوشتم و با برنامه linqer هم کدها رو با linq بازنویسی کردم مشکلی که وجود داره اینه که توی برنامه linqer هم کد sql و هم linq درست جواب میده ولی وقتی میخوام کامپایل کنم توی linqer با پیغام زیر مواجه میشم:
Error Compiling Expression: Error Compiling Expression: Delegate 'System.Func<eShop.Model.Users,int,bool>' does not take 1 arguments
Cannot convert lambda expression to type 'string' because it is not a delegate type
'System.Linq.IQueryable<AnonymousType#1>' does not contain a definition for 'Contains' and the best extension method overload 'System.Linq.ParallelEnumerable.Contains<TSource>(System.Linq.ParallelQuery<TSource>, TSource)' has some invalid arguments
Instance argument: cannot convert from 'System.Linq.IQueryable<AnonymousType#1>' to 'System.Linq.ParallelQuery<AnonymousType#2>'
مشخصات جدولها:
جدولUsers شامل فیلدهای:UserID,Username,RoleID
و جدول Activities شامل فیلدهای:ActivityID,ArtistID,....
کوئری که میخوام اینه:
لیست کاربرانی رو میخام برگردونه که در جدول Activities رکوردی را ثبت نکرده اند:
توی sql:
select Username,RoleID from Users
where RoleID=2 AND UserID not in(select ArtistID from Activities)
اینم کد linq که بازنویسی شده توسط linqer:
from users in DataContext.Users
where
users.RoleID == 2 &&
(from activities in DataContext.Activities
select new {
activities.ArtistID
}).Contains(new { users.UserID })
select new {
users.Username,
users.RoleID
}