Lia*_*am 15 lambda repository entity-framework-4 asp.net-mvc-3
在我的控制器中我试图使用包含EF4来选择相关实体,但lambda表达式抛出以下错误,
我有在Entity类中定义的相关实体
public class CustomerSite
{
public int CustomerSiteId { get; set; }
public int CustomerId { get; set; }
public virtual Customer Customer { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
然后在我的控制器中我有
var sites = context.CustomerSites.Include(c => c.Customer);
public ViewResult List()
{
var sites = context.CustomerSites.Include(c => c.Customer);
return View(sites.ToList());
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以指出我正确的方向我在这里做错了吗?
ama*_*jee 88
好吧,帖子很老了,但只是回复这里更新它.嗯,Entity Framework 4.1的Include()方法有扩展方法,它也接受lambda表达式.所以
context.CustomerSites.Include(c => c.Customer);
Run Code Online (Sandbox Code Playgroud)
是完全有效的,你需要做的就是使用这个:
using System.Data.Entity;
Run Code Online (Sandbox Code Playgroud)
Wil*_*ill 11
Include是System.Data.Entity命名空间中的扩展方法,需要添加:
using System.Data.Entity;
Run Code Online (Sandbox Code Playgroud)
然后你可以使用lambda表达式而不是字符串.
该Include方法需要一个字符串,而不是lambda:
public ViewResult List()
{
var sites = context.CustomerSites.Include("Customer");
return View(sites.ToList());
}
Run Code Online (Sandbox Code Playgroud)
当然,您可以编写一个自定义扩展方法,该方法可以使用lambda表达式,并使您的代码与某些魔术字符串无关,并且重构更友好.
但是无论你做什么,请不要将EF自动生成的对象传递给你的视图.使用视图模型.
| 归档时间: |
|
| 查看次数: |
24885 次 |
| 最近记录: |