实体框架 - 打造一个的最佳方式 - >很多关系

时间:2012-09-14 13:40:55

标签: asp.net-mvc entity-framework ef-code-first asp.net-mvc-4 poco

我想使用POCO方法将图像添加到我的项目中。为了让一切工作,我需要修改我的视图/控制器。

项目

namespace POCOExample.Models
{
    public class Item
    {
        public int ID { get; set; }
        public string Name { get; set; }
        public string Info { get; set; }
        public List<Image> Images { get; set; }
    }
}

图像

namespace POCOExample.Models
{
    public class Image
    {
        public int ID { get; set; }
        public int ItemID { get; set; }
        public Item Item { get; set; }
        public string FileName { get; set; }
    }
}

控制器创建(POST)操作

[HttpPost]
public ActionResult Create(Item item, List<HttpPostedFileBase> iamges)
{
    if (ModelState.IsValid)
    {
        // Added code START
        foreach (var image in images)
        {
            item.Images.Add(new Image {
                FileName = Infrastructure.Image.Upload(image) // Returns file name, just what I need
            });
        }
        // Added code END

        db.Items.Add(item);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    return View(item);
}

问题

这段代码有效,但是我想知道我这样做是否是最优/正确的方式?

1 个答案:

答案 0 :(得分:1)

是的,你接近是正确的。

由于没有可以纠正的地方,我想给你哲学建议:甚至不要问自己它是否是最佳的。对这个问题的回答是99%没有,但是甚至不要考虑做出这样的事情并将你的简单,正确和可维护的代码转换成一些没有数字的“最佳”混乱,证明这个特定的部分代码导致现实世界的性能问题:)