asp.net-mvc-3 – 不能将lambda表达式转换为’string’类型,因为它不是委托类型

前端之家收集整理的这篇文章主要介绍了asp.net-mvc-3 – 不能将lambda表达式转换为’string’类型,因为它不是委托类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的控制器中,我试图使用包含EF4来选择相关的实体,但是lambda表达式会抛出以下错误,

我有实体类中定义的相关实体

public class CustomerSite
{
    public int CustomerSiteId { get; set; }
    public int CustomerId { get; set; }
    public virtual Customer Customer { get; set; }
}

然后在我的控制器我有

var sites = context.CustomerSites.Include(c => c.Customer);

 public ViewResult List()
 {
    var sites = context.CustomerSites.Include(c => c.Customer);
    return View(sites.ToList());
 }

任何人都可以在正确的方向指出我在这里做错什么吗?

解决方法

Include方法需要一个字符串,而不是一个lambda:
public ViewResult List()
{
    var sites = context.CustomerSites.Include("Customer");
    return View(sites.ToList());
}

当然,你可以编写一个custom extension method,它可以使用lambda表达式,并使您的代码独立于一些魔术字符串,并重构更友善.

但是无论你做什么请P请不要将EF自动生成的对象传递给你的意见.使用视图模型.

猜你在找的asp.Net相关文章