gpt4 book ai didi

c# - 无法从 List 转换为 EntityCollection

转载 作者:太空宇宙 更新时间:2023-11-03 11:05:16 25 4
gpt4 key购买 nike

我正在尝试更新 entityCollection

这是我的 linq:

itemFromDb.MamConfigurationToBrowser_V1 = 
(EntityCollection<MamConfigurationToBrowser_V1>) itemFromDb.MamConfigurationToBrowser_V1
.Select(browserEfItem =>
FillFromUi(browserEfItem,
item.MamConfigurationToBrowser_V1
.Single(browserUiItem => browserUiItem.BrowserVersionId == browserEfItem.BrowserVersionId)))
.ToList().AsEnumerable();

但是我得到一个运行时转换错误:

Unable to cast object of type 'System.Collections.Generic.List1[Conduit.Mam.MaMDBEntityFramework.MamConfigurationToBrowser_V1]'
to type
'System.Data.Objects.DataClasses.EntityCollection
1[Conduit.Mam.MaMDBEntityFramework.MamConfigurationToBrowser_V1]'.

这是为什么呢?当我对实体执行 linq 时,不是吗?

最佳答案

您正在创建一个 List<MamConfigurationToBrowser_V1>与你的倒数第二个电话 ToList()在您的 Linq 表达式中,然后尝试将此列表转换为 EntityCollection<MamConfigurationToBrowser_V1 .我建议创建一个新的 EntityCollection并将 LINQ 查询的结果添加到该集合中,如下所示:

var collection = new EntityCollection<MamConfigurationToBrowser_V1>();
var processedItems = itemFromDb.MamConfigurationToBrowser_V1
.Select(browserEfItem =>
FillFromUi(browserEfItem,
item.MamConfigurationToBrowser_V1
.Single(browserUiItem => browserUiItem.BrowserVersionId == browserEfItem.BrowserVersionId)))
.ToList();
foreach(var item in processedItems)
{
collection.Add(item);
}

重要:您的代码似乎将数据库问题与业务逻辑混合在一起,我个人从未使用过 EntityCollect<T>直接在我的代码中。我不知道您的背景,但也许您应该考虑使用存储库和工作单元模式。在 Google 上搜索它们。

关于c# - 无法从 List 转换为 EntityCollection,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16129189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com