Stub Entity的实体框架代码第一次更新

Hen*_* Wu 7 entity-framework ef-code-first

是否可以在EF Code-First中更新而不使用存根对象查询db中的整行,...

例如

public class Dinner 
{     
    public int DinnerID { get; set; }     
    public string Title { get; set; }     
    public DateTime EventDate { get; set; }     
    public string Address { get; set; }     
    public string Country { get; set; }     
    public string HostedBy { get; set; }       
}



Dinner dinner = dinner.DinnerID = 1;     
dinner.HostedBy = "NameChanged" 
nerdDinners.SaveChanges();
Run Code Online (Sandbox Code Playgroud)

上面的代码是否会创建一个Update Statement,它会使DinnerID 1行的以下列为null?

标题,EventDate,地址,国家

有没有像"PropertyModified"= true的方式或方法,那么其余的使它们= false,以便HostedBy是唯一一个将被更新的?

RPM*_*984 4

认为您正在寻找ApplyCurrentValues

public void UpdateDinner(Dinner existingDinner)
{
    var stub = new Dinner { DinnerId = existingDinner.DinnerId };
    ctx.Dinners.Attach(stub);
    ctx.ApplyCurrentValues(existingDinner);
    ctx.SaveChanges();
}
Run Code Online (Sandbox Code Playgroud)

ApplyCurrentValues量值从现有对象复制到图中的对象(在上述情况下 - 存根实体)。

来自MSDN 上的备注部分:

与对象的原始值不同的任何值都被标记为已修改。

这就是你的追求吗?