0

我是 EF5 和 LINQ 的新手,并且在以下方面有些挣扎。

我在急切的负载情况下工作,并且想知道如何最好地编写一种方法来支持以下内容。

实体 A 与其他 3 个实体有关系。

我想要一个返回 Listist 的方法(没问题),但我还希望该方法有 3 个参数,指示我是否要包含其他 3 个相关实体中的每一个。

因此,如果将这三个都包括在内,则此作品。

        var AA = from e in context.A
        .Include( "Bs" )
         .Include( "Cs" )
         .Include( "Ds" )
                    where e.......
                    select e;

如何根据我的方法参数编写它以允许包含存在或不存在?

4

1 回答 1

0

传入三个参数bool includeBsbool includeCsbool includeDs传入方法中然后使用:

DbQuery<A> query = context.A;
if (includeBs)
    query = query.Include("Bs");
if (includeCs)
    query = query.Include("Cs");
if (includeDs)
    query = query.Include("Ds");

var AA = from e in query
         where e.......
         select e;

附带说明:使用 EF 5,您应该有一个Include可用的强类型版本,它采用 lambda 表达式而不是字符串作为参数,例如Include(a => a.Bs). 当您将DbQuery<A>上面替换为 时,您也可以使用它IQueryable<A>

于 2013-01-31T20:47:42.090 回答