使用实体框架获得结果

时间:2015-07-27 14:24:11

标签: c# entity-framework

我试图查询数据库集,但是当我得到结果时,我似乎无法访问数据。这是我尝试过的代码。

查询#1:

public List<CustomerMain> testing()
{
        var context = new CustomerEntities();

        var query = context.CustomerMains
            .Where(p=> p.FirstName == "Thor")
            .Select(p => new CustomerMain {FirstName=p.FirstName,LastName =p.LastName}).ToList();

        return query;
}

查询#2:

public IQueryable<CustomerMain> testing()
{
        var context = new CustomerEntities();

        var query = context.CustomerMains
            .Where(p=> p.FirstName == "Thor")
            .Select(p => new CustomerMain {FirstName=p.FirstName,LastName =p.LastName});

        return query;
}

CustomerMain是我的DbSet,如果我运行其中任何一个并将方法分配给var变量,它就无法抓住FirstNameLastName来自变量。如果我将其转换为CustomerMain,我发现我可以执行此操作,但返回查询不应该是CustomerMain类型吗?

1 个答案:

答案 0 :(得分:5)

  

它没有让我从变量

中获取FirstName或LastName的选项

因为该方法返回集合或可查询,而不是单个实体。您需要迭代或选择记录:

public CustomerMain FindOne(string firstName)
{
    using (var context = new CustomerEntities())
    {    
        var query = context.CustomerMains.Where(p => p.FirstName == firstName);

        return query.FirstOrDefault();
    }
}

或者:

SelectedIndexChanged

或者,如果您希望该方法返回一条记录(如果没有找到则返回null):

cBox.SelectedIndex=0