相关疑难解决方法(0)

LinqToSQl和成员访问在类型异常上不合法

基本问题......

我有一个执行以下代码的方法:

IList<Gig> gigs = GetGigs().WithArtist(artistId).ToList();
Run Code Online (Sandbox Code Playgroud)

GetGigs()方法通过LinqToSql从我的数据库中获取Gigs ...

因此,当执行GetGigs().WithArtist(artistId).ToList()时,我得到以下异常:

Member access 'ListenTo.Shared.DO.Artist Artist' of 'ListenTo.Shared.DO.Act' not legal on type 'System.Collections.Generic.List`1[ListenTo.Shared.DO.Act] 
Run Code Online (Sandbox Code Playgroud)

请注意,扩展功能"WithArtist"如下所示:

    public static IQueryable<Gig> WithArtist(this IQueryable<Gig> qry, Guid artistId)
    {
        return from gig in qry
               where gig.Acts.Any(act => (null != act.Artist) && (act.Artist.ID == artistId))
               orderby gig.StartDate
               select gig;
    }
Run Code Online (Sandbox Code Playgroud)

如果我用一个在代码中构造gigs集合的方法替换GetGigs()方法(而不是通过LinqToSQL从DB中),我不会得到异常.

所以我很确定问题出在我的LinqToSQl代码而不是对象结构上.

但是,我没有IDEA为什么LinqToSQl版本无法正常工作,所以我在下面列出了所有相关代码.任何帮助都会非常感激地接受!

LinqToSQL代码....

    public IQueryable<ListenTo.Shared.DO.Gig> GetGigs()
    {
        return from g in DBContext.Gigs
               let acts = GetActs(g.ID)
               join venue in DBContext.Venues on g.VenueID equals venue.ID
               select new ListenTo.Shared.DO.Gig …
Run Code Online (Sandbox Code Playgroud)

linq linq-to-sql

10
推荐指数
3
解决办法
5065
查看次数

标签 统计

linq ×1

linq-to-sql ×1