Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/entity-framework/4.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
C#-entityFramework-填写值列表_C#_Entity Framework_Entity - Fatal编程技术网

C#-entityFramework-填写值列表

C#-entityFramework-填写值列表,c#,entity-framework,entity,C#,Entity Framework,Entity,我有一个实体,如: public class Search { public String FirstName {get; set; } public Guid PersonId { get; set; } public Guid CId { get; set; } } 在相应的搜索表中,对于每个PersonId,我有许多cid。所以如果我 select * from Search where FirstName = 'D' 我得到了几行数据,比如: PersonId

我有一个实体,如:

public class Search
{
    public String FirstName {get; set; }
    public Guid PersonId { get; set; }
    public Guid CId { get; set; }
}
在相应的搜索表中,对于每个PersonId,我有许多cid。所以如果我

select * from Search where FirstName = 'D'
我得到了几行数据,比如:

PersonId       CId       FirstName
8888888       2222222     D
8888888       4444444     D
8888888       3333333     D
是否仍然可以用CID列表填充实体,而不是为每一行获取一个“搜索”

换言之,“搜索”实体是否有如下含义:

   public class Search
{
    public String FirstName {get; set; }
    public Guid PersonId { get; set; }
    public Guid[] CId { get; set; }
}

并获得一个PersonId和一个CID列表???

您是否尝试使用GroupBy子句


您是否尝试使用GroupBy子句


正如Henrique所说,您可以使用groupby子句,但entity不支持groupby,因此您需要它,并为您正在寻找的对象创建一个新类:

 var results = ctx.Searches.Where(s => s.FirstName == "D")
                                    .AsEnumerable().GroupBy(x => x.PersonId)
                                    .Select(p => new SearchResult{
                                                    FirstName = p.FirstOrDefault().FirstName,
                                                    PersonId = p.Key.Value,
                                                    CId = p.Select(z => z.CId).ToArray()
                                                }).ToList();
这可能就是课堂

class SearchResult 
    {
        public String FirstName {get; set; }
        public Guid PersonId { get; set; }
        public Guid[] CId { get; set; }
    }

正如Henrique所说,您可以使用groupby子句,但entity不支持groupby,因此您需要它,并为您正在寻找的对象创建一个新类:

 var results = ctx.Searches.Where(s => s.FirstName == "D")
                                    .AsEnumerable().GroupBy(x => x.PersonId)
                                    .Select(p => new SearchResult{
                                                    FirstName = p.FirstOrDefault().FirstName,
                                                    PersonId = p.Key.Value,
                                                    CId = p.Select(z => z.CId).ToArray()
                                                }).ToList();
这可能就是课堂

class SearchResult 
    {
        public String FirstName {get; set; }
        public Guid PersonId { get; set; }
        public Guid[] CId { get; set; }
    }

对但是在我的例子中,我不能使用Groupby,因为如果我想使用它,我需要做一些类似的事情:dbSet.Searches.Groupby(s=>s.PersonId)。选择(a=>a.FirstOrDefault()),在这种情况下,我会在第一个旁边丢失CID,我需要它们..是的。。但是在我的例子中,我不能使用Groupby,因为如果我想使用它,我需要做一些类似的事情:dbSet.Searches.Groupby(s=>s.PersonId)。选择(a=>a.FirstOrDefault()),在这种情况下,我会在第一个旁边丢失CID,我需要它们。。