C# EntityFramework由另一项更新项
我有以下代码:C# EntityFramework由另一项更新项,c#,entity-framework,C#,Entity Framework,我有以下代码: public static void SaveItem(Item itemFrom) { using (myEntitites ctx = new myEntitites()) { Item itemTo = ctx.Items.First(x => x.ID = itemFrom.ID); itemTo.Property1 = itemFrom.Property1; itemTo.Property2 = it
public static void SaveItem(Item itemFrom)
{
using (myEntitites ctx = new myEntitites())
{
Item itemTo = ctx.Items.First(x => x.ID = itemFrom.ID);
itemTo.Property1 = itemFrom.Property1;
itemTo.Property2 = itemFrom.Property2;
itemTo.Property3 = itemFrom.Property3;
//..lot of properties
ctx.SaveChanges();
}
}
我想知道是否有一种方法可以在不指定每个属性的情况下更新项目
itemFrom
是itemTo
的更新版本。您可以手动将项目附加到上下文,而无需从数据库获取对象。
实体框架将使用模型中定义的主键更新正确的行
public static void SaveItem(Item itemFrom)
{
using (myEntitites ctx = new myEntitites())
{
ctx.Items.Attach(itemFrom);
ctx.Entry(itemFrom).State = EntityState.Modified;
ctx.SaveChanges();
}
}
您可以手动将项目附加到上下文,而无需从数据库获取对象。 实体框架将使用模型中定义的主键更新正确的行
public static void SaveItem(Item itemFrom)
{
using (myEntitites ctx = new myEntitites())
{
ctx.Items.Attach(itemFrom);
ctx.Entry(itemFrom).State = EntityState.Modified;
ctx.SaveChanges();
}
}
itemTo=itemFrom应work@King否,重新分配变量不会更新跟踪的实体。itemTo=itemFrom应work@King不,重新分配变量不会更新跟踪的实体。如果使用
附加,是否需要关心引用?如何附加
知道要覆盖哪个项目?通过其ID?是的,attach方法将使用主键确定要覆盖的对象。如果使用attach
,是否需要关心引用?如何附加
知道要覆盖哪个项目?通过其ID?是的,attach方法将使用主键确定要覆盖的对象。