Jea*_*amp 2 lazy-loading entity-framework-4.1 asp.net-mvc-3
首先,我是ASP.Net MVC 3的新手,我也使用EF 4.1.
我有一个复杂的对象,类似于让我们说一个包含Category对象的Product对象.所以我们有Product.CategoryId,Product.Category和一些额外的属性.我还有一个表单来创建带有下拉列表的产品来选择类别.
在我的控制器中,在创建产品之后,我需要访问类别的某些属性来执行一些额外的操作.但是,虽然设置了Product.CategoryId,但我无法访问Product.Category.SomeProperty,因为Product.Category为null.我希望使用一些延迟加载自动加载Product.Category,但它似乎不是.
我的控制器中的代码如下所示:
[HttpPost]
public ActionResult Create(Product product)
{
if (ModelState.IsValid)
{
db.Products.Add(product);
db.SaveChanges();
string someString = product.Category.SomeProperty;
...
Run Code Online (Sandbox Code Playgroud)
现在,这不起作用,因为product.Category为null.我需要添加什么才能访问SomeProperty?
延迟加载在此方案中不起作用,因为您要添加新对象.延迟加载将对EF上下文创建的"代理"实体起作用.
所以你可以在这里明确加载导航属性.
db.Products.Add(product);
db.SaveChanges();
db.Entry(product).Reference(p => p.Category).Load();
string someString = product.Category.SomeProperty;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5307 次 |
| 最近记录: |