实体框架查询无法使用asp.net工作

时间:2017-06-17 11:38:37

标签: c# sql asp.net entity-framework

我的实体框架查询没有返回任何值。我想通过实体框架复制这个查询:SELECT name FROM guitarBrands WHERE image = image。所以我最终在下面尝试了这段代码。

public static string GetBrandByImage(string imageType)
{
    BrandsDBEntities obj = new BrandsDBEntities();

    string name = (from g in obj.guitarBrands where g.image == imageType select g.name).ToString();

    return name;
}

我真的很擅长使用实体框架,我真的希望你们能为此提供解决方案。

2 个答案:

答案 0 :(得分:2)

(from g in obj.guitarBrands where g.image == imageType select g.name)

返回类似SQL查询的列表

获取第一个元素

(from g in obj.guitarBrands where g.image == imageType select g.name).First().Tostring();

或同等的

obj.guitarBrands.Where(g => g.image == imageType).First().name;

答案 1 :(得分:1)

您在查询本身上调用ToString。查询需要首先枚举

public static string GetBrandByImage(string imageType) {
    using(var obj = new BrandsDBEntities()) {    
        var name = (from g in obj.guitarBrands 
                    where g.image == imageType 
                    select g.name).FirstOrDefault();

        return name;
    }
}

在查询中使用FirstOrDefault将返回与谓词匹配的任何吉他品牌的第一个name,如果找不到匹配则返回null