首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从List<EntityObject>转换为EntityObject

从List<EntityObject>转换为EntityObject
EN

Stack Overflow用户
提问于 2011-10-07 17:48:44
回答 3查看 251关注 0票数 0

我的代码如下。

代码语言:javascript
复制
public void CreateNewAuthor(List<Author> newAuthor)
{
    publishContext.AddToAuthors(newAuthor);
}

我知道这会导致错误,因为当我传递List<>时,AddToAuthors(Author newAuthor)接受entity对象作为参数。那么,这应该如何处理呢?如何在AddToAuthors()之前将List<>转换为entity对象?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-07 17:52:05

您正在接受多个作者--但您试图调用需要单个作者的东西。您的列表中是否需要多个值,还是只有一个值?

听起来你可能只想循环:

代码语言:javascript
复制
public void CreateNewAuthor(List<Author> newAuthors)
{
    foreach (Author newAuthor in newAuthors)
    {
        publishContext.AddToAuthors(newAuthor);
    }
}

..。或者,完全有可能上下文已经提供了一种同时添加多个作者的方法。(我不是EF的人,所以我不确定。)

重要的是,您要了解此处的可能性-列表可以不包含作者,可以包含一个作者,也可以包含多个作者。这些在你的代码中都是有效的吗?您希望如何处理这些情况?

票数 2
EN

Stack Overflow用户

发布于 2011-10-07 17:54:19

您可以遍历列表并添加此列表包含的所有Author对象:

代码语言:javascript
复制
foreach (Author author in newAuthor)
{
    publishContext.AddToAuthors(author);
}
票数 1
EN

Stack Overflow用户

发布于 2011-10-07 17:55:50

案例1.您知道该列表只包含一项:

  1. 将方法的签名更改为以下内容:

公共空作者(CreateNewAuthor newAuthor)

(引用名称不是复数形式的项目列表是非常不直观的。更不直观的是,您的方法接受一个列表(即。“几个”) Author对象,但要求列表只包含一项。)

  • 然后,按如下方式调用您的方法:

//使用System.Linq;//列表someListOfAuthors =新建列表{ someAuthor };CreateNewAuthor( someListOfAuthors.Single() );

或者,不使用LINQ:

CreateNewAuthor( someListOfAuthors );

案例2.列表可以包含任意数量的项:

  1. 将参数从newAuthor重命名为newAuthors,原因与前面提到的将方法主体重命名为以下内容的原因相同:

foreach (newAuthors作者){publishContext.AddToAuthors(作者);}

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7685589

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档