使用实体框架和linq的嵌套类

时间:2011-08-25 17:30:00

标签: linq entity-framework

我有这些课程:

public class RegionResult
{
    public string Region { get; set; }
    public List<Unicorn> Unicorns { get; set; }
}

public class Unicorn
{
    public string Name { get; set; }
    public string Color { get; set; }
    public Dictionary<string, string> Parameters { get; set; }
}

我会从我的datacontext将数据分配给List。 “平面”查询看起来像:

SELECT * FROM Regions R 
JOIN Unicorns U ON R.X = U.X
LEFT JOIN Parameters P ON U.X = P.X

我希望按地区分组,并为每个区域填充独角兽,参数如果不为空。该查询将如何?

List<RegionResult> regions = (from a in (_entites.Regions).AsEnumerable().GroupBy(...)
.select new... a = a.Unicorn.Name..  new .ToDictionary(key, value)?

提前致谢

/拉塞

1 个答案:

答案 0 :(得分:2)

如果我理解你的话,你只想加载具有相关联的Unicorns和参数的区域。

您不必分组,只需加载区域并包含相关实体(这适用于EF 4.1):

List<RegionResult> regions = 
     _entites.Regions.Include(r => r.Unicorns.Select(u => u.Parameters);

但我不认为您可以使用实体框架映射字典类型。