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,我需要它们。。