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群by_Linq - Fatal编程技术网

强型linq群by

强型linq群by,linq,Linq,相关模型 public class category_trans { [Key] [Column(Order = 1)] public int category_id { get; set; } [Key] [Column(Order = 2)] public int language_id { get; set; } public string name { get; set; } } 当前Linq查询,工作: IQueryable&l

相关模型

public class category_trans
{
    [Key]
    [Column(Order = 1)]
    public int category_id { get; set; }
    [Key]
    [Column(Order = 2)]
    public int language_id { get; set; }
    public string name { get; set; }
}
当前Linq查询,工作:

IQueryable<category_trans> APC =
            from ct in db.category_trans
            from c in db.Categories
            from l in db.ISO_Languages
            where (
            ct.category_id == c.ID 
            && ct.language_id == l.ID 
            && l.code.Substring(0,2) == culture
            && c.IsDeleted == false)
            select ct;
g.category\u id
g.name

IGrouping <string,category_trans> does not contain a definition for 'category_id'...
i分组不包含“类别\u id”的定义。。。

为什么分组似乎失去了对模型成员的引用,以及如何修复它?

因为一个组可以包含多个成员,所以可以使用
属性作为名称:

IQueryable<category_trans> APC =
        from ct in db.category_trans
        from c in db.Categories
        from l in db.ISO_Languages
        where (
        ct.category_id == c.ID 
        && ct.language_id == l.ID 
        && l.code.Substring(0,2) == culture
        && c.IsDeleted == false)
        group ct by ct.name into g
        select new
        {
            category_id = g.First().category_id,
            name = g.Key
        };
IQueryable APC=
从ct到db.category_trans
从c到db.Categories
从db.ISO_语言中的l开始
在哪里(
ct.category_id==c.id
&&ct.language_id==l.id
&&l.code.子字符串(0,2)==文化
&&c.IsDeleted==false)
按ct.name将ct分组为g
选择新的
{
category_id=g.First().category_id,
name=g.键
};

我使用了
First
来获取第一个
category\u id
,您可能需要使用不同的逻辑

谢谢,蒂姆,这很有效。我只需要更改FirstOrDefault()并将类型返回到泛型IQueryable。
IQueryable<category_trans> APC =
        from ct in db.category_trans
        from c in db.Categories
        from l in db.ISO_Languages
        where (
        ct.category_id == c.ID 
        && ct.language_id == l.ID 
        && l.code.Substring(0,2) == culture
        && c.IsDeleted == false)
        group ct by ct.name into g
        select new
        {
            category_id = g.First().category_id,
            name = g.Key
        };