Entity framework core 实体框架核心1.0 CurrentValues.SetValues()不存在

Entity framework core 实体框架核心1.0 CurrentValues.SetValues()不存在,entity-framework-core,Entity Framework Core,我试图使用EntityFrameworkCore1.0RC1更新一个实体及其相关子实体,其中实体与DbContext分离。我以前使用过类似于本文所述的解决方案 但是,我们似乎无法再使用Entity Framework 7执行以下操作: DbContext.Entry(existingPhoneNumber).CurrentValues.SetValues(); Visual Studio抱怨: EntityEntry不包含“CurrentValues”的定义 等等 我想这意味着EF Core

我试图使用EntityFrameworkCore1.0RC1更新一个实体及其相关子实体,其中实体与DbContext分离。我以前使用过类似于本文所述的解决方案

但是,我们似乎无法再使用Entity Framework 7执行以下操作:

DbContext.Entry(existingPhoneNumber).CurrentValues.SetValues();
Visual Studio抱怨:

EntityEntry不包含“CurrentValues”的定义 等等


我想这意味着EF Core 1.0还没有(尚未?)实现这一功能?除了手动更新属性,还有其他解决方案吗?

正如您所注意到的,这个API还没有在EF Core中实现。查看此工作项:

我知道这是一个老问题,但我今天遇到了这个问题,而且它似乎仍然没有在EF Core中实现。因此,我编写了一个扩展方法,在此期间将使用任何其他对象的匹配值更新任何对象的属性

public static class EFUpdateProperties
{
    public static TOrig UpdateProperties<TOrig, TDTO>(this TOrig original, TDTO dto)
    {
        var origProps = typeof(TOrig).GetProperties();
        var dtoProps = typeof(TDTO).GetProperties();

        foreach(PropertyInfo dtoProp in dtoProps)
        {
            origProps
                .Where(origProp => origProp.Name == dtoProp.Name)
                .Single()
                .SetMethod.Invoke(original, new Object[] 
                    { 
                    dtoProp.GetMethod.Invoke(dto, null) });                
                    }
                );                

        return original;
    }
}

谢谢,那正是我想要的。我本应该亲自检查这些未解决的问题,但我没有想到去看。仅供参考:现在已经实施了。
public async Task UpdateEntity(EditViewModel editDto)
    {
        // Get entry from context
        var entry = await _context.Items.Where(p => p.ID == editDto.Id).FirstOrDefaultAsync();                

        // Update properties
        entry.UpdateProperties(editDto);

        // Save Changes
        await _context.SaveChangesAsync();
    }