无法将类型system.collection.genaric.list <cuisine>隐式转换为DataModel.resturant.cuisine

时间:2018-08-07 14:35:25

标签: c# asp.net-mvc linq

我在同一问题上发现了许多其他问题,但找不到任何解决方法

这是我的处理程序函数,用于在数据库中搜索美食

    public Cuisine GetCuisines(string cuisine)
    {

        using (ResturantContext context = new ResturantContext())
        {
            // db.Cuisines.Where(x => x.Name.Contains(Cuisine))
            return (from m in context.Cuisines
                       .Include("Images")
                       .Include("Category")
                    where m.Name == cuisine
                    select m).ToList();
        }
    }

在这里我找不到什么问题

3 个答案:

答案 0 :(得分:4)

ToList()创建一个List<Cuisines>,但是您的方法返回一个Cuisine

您应该将方法的返回类型更改为List<Cuisines>

public List<Cuisine> GetCuisines(string cuisine)

...或调用FirstOrDefault()而不是ToList()仅选择一个Cuisines

using (ResturantContext context = new ResturantContext())
{
    return (from m in context.Cuisines
                .Include("Images")
                .Include("Category")
            where m.Name == cuisine
            select m).FirstOrDefault();
}
如果未找到匹配的FirstOrDefault()

null将返回CuisinesSingle()将引发异常。

答案 1 :(得分:2)

您应该使用返回类型List<Cuisine>而不是Cuisine

public List<Cuisine> GetCuisines(string cuisine)

答案 2 :(得分:1)

使用FirstOrDefault获得一项

public Cuisine GetCuisines(string cuisine)
{

    using (ResturantContext context = new ResturantContext())
    {
        // db.Cuisines.Where(x => x.Name.Contains(Cuisine))
        return (from m in context.Cuisines
                   .Include("Images")
                   .Include("Category")
                where m.Name == cuisine
                select m).FirstOrDefault();
    }
}