C# EF Linq:使用数组中的ID更新相关表列表

C# EF Linq:使用数组中的ID更新相关表列表,c#,entity-framework,linq,optimization,C#,Entity Framework,Linq,Optimization,我有一个用int值表示ID的数组 我有一个实体(使用EF生成),其集合属性表示一个相关表(1到n) 我需要用数组中的值更新此集合 当然,我可以先选一个再选第二个,但我相信有更好的方法可以让林克做到这一点,也许吧 谢谢据我所知,EF中没有“一步”更新命令。首先,您必须选择项目,然后更改其值,然后保存它。2 db往返(选择并保存) 但若您的ID列是主键或唯一的,那个么对于每个项目,创建新的db对象,设置ID值并附加它(使用附加方法),更改值并保存它。1 db往返(只需保存)。为了提高性能,我更喜欢这

我有一个用int值表示ID的数组

我有一个实体(使用EF生成),其集合属性表示一个相关表(1到n)

我需要用数组中的值更新此集合

当然,我可以先选一个再选第二个,但我相信有更好的方法可以让林克做到这一点,也许吧

谢谢

据我所知,EF中没有“一步”更新命令。首先,您必须选择项目,然后更改其值,然后保存它。2 db往返(选择并保存)

但若您的ID列是主键或唯一的,那个么对于每个项目,创建新的db对象,设置ID值并附加它(使用附加方法),更改值并保存它。1 db往返(只需保存)。为了提高性能,我更喜欢这个

另一方面,有两个开源库用于一步更新命令。但它们只支持Ms SQL Server。我记不起图书馆的名字了

附件示例:

using (DataEntities context = new DataEntities())
{
    foreach (int ID in IDList)
    {
        TableName item = new TableName();
        item.ID = ID;
        context.TableName.Attach(item);
        item.IsDeleted = true; //Change a filed's value
    }

    context.SaveChanges();
}

你已经开始解决这个任务了吗?提示:打开VisualStudio将是一个良好的开端。如果你已经开始了,那么请向我们展示你的代码,并解释我的错误。谢尔盖,我没有阻碍我的问题,我只是尝试学习EF并尝试改进我的代码。就像我说的,我使用EF,我需要更新一个实体,这个实体将数据链接到一个相关的表。我想知道如何使用Linq和附加到实体的列表更新此相关表中的数据