使用实体框架获得结果

本文关键字:结果 框架 实体 | 更新日期: 2023-09-27 18:04:49

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

查询# 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类型已经?

使用实体框架获得结果

它没有给我从变量

中获取FirstName或LastName的选项

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

var customers = testing();
foreach (CustomerMain customer in customers)
{
    // access customer.FirstName
}

或:

var customers = testing();
var oneCustomer = customers.FirstOrDefault(c => c.FirstName == "Thor");
// access oneCustomer.FirstName

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

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