强型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
};