Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/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# 需要在实体框架中选择多个列,但只需要在单个列上获得不同_C#_Asp.net Mvc_Entity Framework_Linq - Fatal编程技术网

C# 需要在实体框架中选择多个列,但只需要在单个列上获得不同

C# 需要在实体框架中选择多个列,但只需要在单个列上获得不同,c#,asp.net-mvc,entity-framework,linq,C#,Asp.net Mvc,Entity Framework,Linq,我有一个包含以下记录的数据库表。有比我在下面显示的更多的字段,但我只想返回所有者、品牌名称、ID和类型字段 Owner Ingredient BrandName ID# Type XXX Methoprene Precor 123-333 H XXX Permethrin Precor 123-333 H 我正在尝试编写一个实体框架查询,以仅选择Brand

我有一个包含以下记录的数据库表。有比我在下面显示的更多的字段,但我只想返回所有者、品牌名称、ID和类型字段

 Owner     Ingredient        BrandName    ID#       Type

  XXX       Methoprene       Precor        123-333    H
  XXX       Permethrin       Precor        123-333    H
我正在尝试编写一个实体框架查询,以仅选择Brand Name字段中的不同记录,但仍将列表中的其他列返回给控制器以在局部视图中显示。以下是我尝试过的代码,但我似乎无法正确编写查询:

               return db.Pesticides
                        .Where(c => c.Owner == Owner && c.BrandName == PesticidesBrand)
                        .GroupBy(c =>  c.Owner, c =>c.BrandName )
                        .Select(d => d.FirstOrDefault())
                        .ToList();
我意识到Select子句不正确,但需要帮助获得正确的语法以返回4个特定字段。我希望查询返回以下记录:

XXX  Precor    123-333  H

提前感谢……

我相信这就是您想要的

var record = db.Pesticides
            .Where(c => c.Owner == Owner && c.BrandName == PesticidesBrand)
            .Select(c => new { c.Owner, c.BrandName, c.ID, c.Type })
            .FirstOrDefault();
如果要从结果返回此值,则需要将其投影到已知类型

PesticideModel record = db.Pesticides
            .Where(c => c.Owner == Owner && c.BrandName == PesticidesBrand)
            .Select(c => new PesticideModel{ Owner = c.Owner, BrandName = c.BrandName, ID = c.ID, Type = c.Type })
            .FirstOrDefault();
杀虫剂模型

如果要返回包含单个记录的列表,请执行以下操作:

List<PesticideModel> record = db.Pesticides
            .Where(c => c.Owner == Owner && c.BrandName == PesticidesBrand)
            .Select(c => new PesticideModel{ Owner = c.Owner, BrandName = c.BrandName, ID = c.ID, Type = c.Type })
            .Take(1) // take 1st record
            .ToList();

我相信这就是你要找的

var record = db.Pesticides
            .Where(c => c.Owner == Owner && c.BrandName == PesticidesBrand)
            .Select(c => new { c.Owner, c.BrandName, c.ID, c.Type })
            .FirstOrDefault();
如果要从结果返回此值,则需要将其投影到已知类型

PesticideModel record = db.Pesticides
            .Where(c => c.Owner == Owner && c.BrandName == PesticidesBrand)
            .Select(c => new PesticideModel{ Owner = c.Owner, BrandName = c.BrandName, ID = c.ID, Type = c.Type })
            .FirstOrDefault();
杀虫剂模型

如果要返回包含单个记录的列表,请执行以下操作:

List<PesticideModel> record = db.Pesticides
            .Where(c => c.Owner == Owner && c.BrandName == PesticidesBrand)
            .Select(c => new PesticideModel{ Owner = c.Owner, BrandName = c.BrandName, ID = c.ID, Type = c.Type })
            .Take(1) // take 1st record
            .ToList();

我是EF的新手,所以我很难掌握正确的语法。告诉我无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.Generic”。List@stuartm-见更新。我重读了你的问题,似乎你想要第一张带有特定字段集的记录。这让我比以前走得更远。请原谅我的经验不足,但我的控制员希望能返回一份清单。我需要做什么才能将其作为列表返回?@stuartm-你的问题是需要一条包含4个字段的记录。我希望查询返回以下记录。您想将这一条记录作为列表返回,还是根据查询返回的内容需要其他记录?将这一条记录作为列表返回。我对EF非常陌生,因此我很难掌握正确的语法。告诉我无法将类型“System.Collections.Generic.List”隐式转换为“System.Collections.Generic”。List@stuartm-见更新。我重读了你的问题,似乎你想要第一张带有特定字段集的记录。这让我比以前走得更远。请原谅我的经验不足,但我的控制员希望能返回一份清单。我需要做什么才能将其作为列表返回?@stuartm-你的问题是需要一条包含4个字段的记录。我希望查询返回以下记录。您想将这一条记录作为列表返回,还是根据查询返回的内容需要其他记录?请将这一条记录作为列表返回。如果您指出发布的解决方案的哪一部分是必需的,并简要解释原因,我们将不胜感激。只有代码的答案对未来的读者来说没有多大价值。如果您指出所发布的解决方案的哪一部分是必要的,并简要说明原因,我们将不胜感激。只有代码的答案对未来的读者没有什么价值。请参阅。请参阅。