gpt4 book ai didi

c# - 使用 Group by 从第二个(右)加入的实体获取属性

转载 作者:行者123 更新时间:2023-12-04 09:15:01 24 4
gpt4 key购买 nike

请我正在处理 ASP.NET MVC项目与 Entity Framework .
我试着写一个 Linq给我一些数据的查询,这个查询将连接两个实体并按数据分组,所以问题是当我尝试获取第二个连接实体的属性时,我在 Intellisense 中没有看到它们,我需要这些属性来选择它们。
我的尝试:

var R = (from N in SCHOOL_DB_Context.Con.NT_CTR join S in SCHOOL_DB_Context.Con.STGs on N.STG_nt equals S.CD_STG where N.CTR_nt==CTR group N by N.STG_nt into G select new NT_CTR_Anal { /*Here where I want to select some properties from second entity*/ } )
所以请帮助解决这个问题?

最佳答案

看一下tis片段:

group N by N.STG_nt into G
by之间的部分和 into是键,与 SQL 类似,您可以访问来自 from 的所有别名(变量)。和 join条款。 into 后的名称是 LINQ 特定的,代表访问 GroupBy 的别名(变量)。结果。但是 group之间是什么?和'通过'?没有等效的 SQL。
那么, GroupBy的结果类型为 IGrouping<TKey, TElement> , 具有属性 TKey Key也是 IEnumerable<TElement> . TKey来自 by 之间的表达式和 into , 而 TElement (这是您可以通过 into 访问的变量来自 groupby 之间的表达式。
在您的样本中,您输入了 N在那里,这就是您只能访问其属性的原因。
为了访问其他属性,您可以将典型的 LINQ 构造用于“复合”事物,即匿名类型投影,例如
var R = (
from N in SCHOOL_DB_Context.Con.NT_CTR
join S in SCHOOL_DB_Context.Con.STGs on N.STG_nt equals S.CD_STG
where N.CTR_nt == CTR
group new { N, S } by N.STG_nt into G
select new NT_CTR_Anal
{
G.Key, // N.STG_nt
SomeNPropSum = G.Sum(e => e.N.SomeNProp),
SomeSPropSum = G.Sum(e => e.S.SomeSProp),
};
如您所见,现在您可以访问 NS分组聚合方法中的属性。

关于c# - 使用 Group by 从第二个(右)加入的实体获取属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63269609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com