LINQ to SQL 和嵌套的 EntitySet 类型
LINQ to SQL and nested EntitySet type
我有一个带有 EntitySet 的模型。我正在尝试构建 LINQ 语句,但我不确定如何形成代码。我收到转换错误,因为它无法将泛型列表转换为 EntitySet 类型。
select new ParentRecord {
ParentID = item.ParentID,
Name = item.Name,
Age = item.Age,
MyNestedChildRecords = (from ns in item.MyNestChildRecords
select ns).ToList();
}.ToList();
无法将源类型 "List" 转换为目标类型 "EntitySet"
试试这个:
var test = (from ns in item.MyNestedChildRecords
select new ParentRecord
{
ParentID = item.ParentID,
Name = item.Name,
Age = item.Age,
MyNestedChildRecords = new EntitySet<MyNestedChildRecords>() { ns }
}).ToList();
显然,你有类似的东西
from item in myItems
select new ParentRecord {
....
问题是您不能简单地将 List<T>
转换为 EntitySet<T>
,因为 EntitySet<T>
没有合适的构造函数。
最简单的方法是在 Select
:
中使用 LINQ 流畅语法和匿名方法
var result = myItems.Select(item =>
{
var record = new ParentRecord
{
ParentID = item.ParentID,
Name = item.Name,
Age = item.Age
};
record.MyNestedChildRecords.AddRange(item.MyNestChildRecords);
return record;
}).ToList()
我假设 ParentRecord
是一个 LINQ-to-Sql 实体 class,因此它的 MyNestedChildRecords
将被初始化。
我有一个带有 EntitySet 的模型。我正在尝试构建 LINQ 语句,但我不确定如何形成代码。我收到转换错误,因为它无法将泛型列表转换为 EntitySet 类型。
select new ParentRecord {
ParentID = item.ParentID,
Name = item.Name,
Age = item.Age,
MyNestedChildRecords = (from ns in item.MyNestChildRecords
select ns).ToList();
}.ToList();
无法将源类型 "List" 转换为目标类型 "EntitySet"
试试这个:
var test = (from ns in item.MyNestedChildRecords
select new ParentRecord
{
ParentID = item.ParentID,
Name = item.Name,
Age = item.Age,
MyNestedChildRecords = new EntitySet<MyNestedChildRecords>() { ns }
}).ToList();
显然,你有类似的东西
from item in myItems
select new ParentRecord {
....
问题是您不能简单地将 List<T>
转换为 EntitySet<T>
,因为 EntitySet<T>
没有合适的构造函数。
最简单的方法是在 Select
:
var result = myItems.Select(item =>
{
var record = new ParentRecord
{
ParentID = item.ParentID,
Name = item.Name,
Age = item.Age
};
record.MyNestedChildRecords.AddRange(item.MyNestChildRecords);
return record;
}).ToList()
我假设 ParentRecord
是一个 LINQ-to-Sql 实体 class,因此它的 MyNestedChildRecords
将被初始化。