小编Ben*_*Ben的帖子

实体框架 - 保存对分离状态中相关对象的更改

我正在使用Northwind数据库作为这篇文章的一个例子,我在使用实体框架将分离的实体保存回数据库时遇到了问题.

我有以下两种方法来获取地区和地区:

    static List<Region> GetRegions()
    {
        using (NorthwindEntities entities = new NorthwindEntities())
        {
            entities.Region.MergeOption = System.Data.Objects.MergeOption.NoTracking;
            return entities.Region.ToList();
        }
    }

    static List<Territories> GetTerritories()
    {
        using (NorthwindEntities entities = new NorthwindEntities())
        {
            entities.Territories.MergeOption = System.Data.Objects.MergeOption.NoTracking;
            return entities.Territories.ToList();
        }
    }
Run Code Online (Sandbox Code Playgroud)

这些方法都工作正常,让我在分离状态下获得我需要的对象集合.

我还有一个名为SaveEntity的静态方法,它接受旧实体和当前编辑的实体,如下所示:

    static void SaveEntity(EntityObject oldEntity, EntityObject newEntity)
    {
        using (NorthwindEntities entities = new NorthwindEntities())
        {
            entities.Attach(oldEntity);
            entities.ApplyPropertyChanges(newEntity.EntityKey.EntitySetName, newEntity);
            entities.SaveChanges();
        }
    }
Run Code Online (Sandbox Code Playgroud)

此方法部分适用于将对象的更改保存到数据库的位置,但不保存对相关对象关系的任何更改.

我有以下代码调用上面的方法作为我的例子:

            List<Territories> territories = GetTerritories();
        List<Region> regions = GetRegions();

        Region region = regions.Where(n => n.RegionID == 2).FirstOrDefault();
        Territories oldTerritory …
Run Code Online (Sandbox Code Playgroud)

c# entity-framework northwind

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

entity-framework ×1

northwind ×1