您的方法效果很好,您唯一可以做的小优化就是不接受“检索命中”,MyUser staffmember = db.MyUsers.Find(userid);
因为您已经拥有userid
.
我正在使用 ASP.NET MVC 4 和 Entity Framework 5.0,这是我的代码(不同的模型对象,但与您正在做的事情相同)。
注意:我让 EF 通过右键单击Models
文件夹并Add->ADO.NET Entity Data Model
在 VS.NET 2012 中选择来生成我的模型类。
Store.Models.Product
namespace Store.Models
{
using System;
using System.Collections.Generic;
public partial class Product
{
public long Id { get; set; }
public string ProductName { get; set; }
public decimal Price { get; set; }
public int Quantity { get; set; }
public System.DateTime DateAdded { get; set; }
public Nullable<long> CategoryId { get; set; }
public virtual Category Category { get; set; }
}
}
Store.Models.Category
namespace Store.Models
{
using System;
using System.Collections.Generic;
public partial class Category
{
public Category()
{
this.Products = new HashSet<Product>();
}
public long Id { get; set; }
public string CategoryName { get; set; }
public System.DateTime DateAdded { get; set; }
public virtual ICollection<Product> Products { get; set; }
}
}
在我的Create.cshtml
页面上,我让用户从下拉列表中选择 CategoryId。此类别 ID 绑定到Product.CategoryId
。我在我的方法中所做的就是:
产品控制器
public class ProductController : Controller
{
...
[HttpPost]
public ActionResult Create(Product product)
{
product.DateAdded = DateTime.Now;
if (dbContext != null)
{
dbContext.Products.Add(product);
dbContext.SaveChanges();
}
return RedirectToAction("Index");
}
...
}