Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF能否使用新构造的实体更新现有行?_C#_Asp.net Mvc_Entity Framework 4 - Fatal编程技术网

C# EF能否使用新构造的实体更新现有行?

C# EF能否使用新构造的实体更新现有行?,c#,asp.net-mvc,entity-framework-4,C#,Asp.net Mvc,Entity Framework 4,我在应用程序中使用EF 我想添加和保存实体 我在应用程序中创建了一个新的实体对象,并设法将其添加到数据库中 现在我想更新一个现有的实体 我已从DB处获得一个现有实体 在UI中显示它 现在我想反映用户的变化 我是否必须再次从数据库中获取实体并逐个为其属性赋值 我尝试创建一个新实体并将其保存到数据库中。它没有显示错误,但它不是;t反映在数据库中。假设您有一个表单发布一个模型对象model和一个具有工作数据库上下文的控制器\u context,您可以使用以下代码对现有实体进行更改(属性可能会有所不同)

我在应用程序中使用EF

我想添加和保存实体

我在应用程序中创建了一个新的实体对象,并设法将其添加到数据库中

现在我想更新一个现有的实体

我已从DB处获得一个现有实体

在UI中显示它

现在我想反映用户的变化

我是否必须再次从数据库中获取实体并逐个为其属性赋值


我尝试创建一个新实体并将其保存到数据库中。它没有显示错误,但它不是;t反映在数据库中。

假设您有一个表单发布一个模型对象
model
和一个具有工作数据库上下文的控制器
\u context
,您可以使用以下代码对现有实体进行更改(属性可能会有所不同):

[HttpPost]
公共行动结果提交表单(MyViewModel模型)
{
//检索现有对象
var someObject=\u context.Resources.OfType.Where
(o=>o.Id==model.Id);
//为实体指定新值
someObject.SomeProperty=model.SomeProperty;
someObject.SomeOtherProperty=model.SomeOtherProperty;
//承诺
_SaveChanges();
}

更新:或者,有关如何附加新对象以替代现有对象的详细信息,请参阅。

请发布您的代码。我知道这种方法。请参阅:
我是否必须再次从数据库中获取实体并逐个为其属性赋值?
我想知道是否有其他方法允许我使用新创建的EF升级?@DbContext API和
ObjectContext
之间有什么区别?我什么时候使用它们?请看我的以下问题:
[HttpPost]
public ActionResult SubmitForm(MyViewModel model)
{
    // Retrieve existing object
    var someObject = _context.Resources.OfType<MyEntityType>.Where
        (o => o.Id == model.Id).SingleOrDefault;

    // Assign new values to entity
    someObject.SomeProperty = model.SomeProperty;
    someObject.SomeOtherProperty = model.SomeOtherProperty;

    // Commit
    _context.SaveChanges();
}