【发布时间】:2019-10-30 19:10:45
【问题描述】:
我正在使用 Entity Framework 6.3 和 LINQ 从表中查询并填充下面的 DTO 对象:
public class MyObject
{
public string Name { get; set; }
public List<int> Number { get; set; }
public MyClass()
{
Number = new List<int>();
}
}
在这个特定的表(遗留项目)中,Name 可以有多个 Numbers,因此我需要将其用作列表。
表格如下所示:
Name Number
abc 15371
abc 15079
abc 15371
abc 30392
xyz 30373
xyz 13141
目前我的代码如下:
List<MyObjetct> myObject = new List<MyObjetct>();
myObject = contex.TableName.Where(x => listOfNames.Contains(x.Name))
.Select( y => new MyObject()
{
name = y.name
number = *populate the list of numbers*
});
我希望用名称和数字列表填充 MyObjects 列表。
【问题讨论】:
-
名称字段中的数字结构如何?我们看不到您的数据。
-
@Amy 用表格编辑了问题
-
您想按名称分组并获取相应的数字作为列表吗?
-
我明白了。您的问题的措辞方式听起来像是名称字段包含数字。
-
那么你应该使用类似
...GroupBy(x=>x.Key).Select(x=>new { x.Key, list = x.Select(y=>y.num).ToList()})
标签: c# linq c#-4.0 entity-framework-6