gpt4 book ai didi

c# - ASP.net MVC - 我应该使用 AutoMapper 从 ViewModel 到 Entity Framework 实体吗?

转载 作者:IT王子 更新时间:2023-10-29 04:33:20 26 4
gpt4 key购买 nike

我目前正在使用 AutoMapper 将我的 Entity Framework 实体映射到我的 View 模型:

public class ProductsController : Controller
{
private IProductRepository productRepository;

public ProductsController(IProductRepository productRepository)
{
this.productRepository = productRepository;
}

public ActionResult Details(int id)
{
var product = productRepository.GetProduct(id);

if( product == null )
return View("NotFound");

ProductDetailsViewModel model = Mapper.Map<Product, ProductDetailsViewModel>(product);

return View(model);
}
}

这很好用。我的问题是何时需要从我的 View 模型转到我的实体以更新数据库。我应该为此使用 AutoMapper 吗?这是一种不良/危险的做法吗?

AutoMapper 似乎很适合将复杂类型扁平化为简单(扁平)类型,但到目前为止,我正在努力尝试从扁平/简单类型转变为更复杂的类型,例如具有各种导航属性的实体.

如果使用 AutoMapper 来执行此操作不是一个好主意,那么我的代码对于 Create 操作会是什么样子?

public ActionResult Create(CreateProductViewModel model)
{
if( ModelState.IsValid )
{
// what do i do here to create my Product entity?
}
}

编辑操作怎么样?

public ActionResult Edit(int id, EditProductViewModel model)
{
Product product = productRepository.GetProduct(id);

// how do i convert my view model to my entity at this point???
}

最佳答案

我认为更新您的实体是一件相当大的事情,并且永远不应使用任何自动化工具。手动设置属性。

是的,它的代码量非常小,但自动映射器或在数据库实体上运行更新模型有时会产生意想不到的后果。最好确保您的写入正确完成。

关于c# - ASP.net MVC - 我应该使用 AutoMapper 从 ViewModel 到 Entity Framework 实体吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7588907/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com