Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用实体框架和linq的嵌套类_Linq_Entity Framework - Fatal编程技术网

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

使用实体框架和linq的嵌套类,linq,entity-framework,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 Dictionar

我有以下课程:

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; }
}
我希望它按区域分组,并为每个区域填充unicorns,如果不为null,则使用参数。这个查询会是什么样子

List<RegionResult> regions = (from a in (_entites.Regions).AsEnumerable().GroupBy(...)
.select new... a = a.Unicorn.Name..  new .ToDictionary(key, value)?
List regions=(来自(_entites.regions).AsEnumerable().GroupBy(…)
.选择new…a=a.Unicorn.Name..new.ToDictionary(键,值)?
提前谢谢


/Lasse

如果我理解正确,您只需要加载带有相关独角兽和参数的区域

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

列表区域=
_entites.Regions.Include(r=>r.Unicorns.Select(u=>u.Parameters);

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

我安装了实体框架4.1,出于某种原因我不能使用lamda表达式。只有字符串参数availableseems你有一些扩展的类objectquery@LasseEdsvik:这是一个扩展方法。必须包含名称空间System.Data.Entity。请参阅本演练介绍了EF 4.1:
List<RegionResult> regions = (from a in (_entites.Regions).AsEnumerable().GroupBy(...)
.select new... a = a.Unicorn.Name..  new .ToDictionary(key, value)?
List<RegionResult> regions = 
     _entites.Regions.Include(r => r.Unicorns.Select(u => u.Parameters);