控制台获取数据但使用相同方法时API调用不会

时间:2015-10-13 22:04:52

标签: c# mysql .net entity-framework api

我正在创建一个包含以下图层的多层应用程序

API

商家

DAL

-

实体

所有图层都可以访问实体,也可以访问列表中位于它们下面的图层。

我还有一个控制台项目。

我的问题是我调用了Business层来从表中获取所有数据,它工作正常并检索两行。但是,我在API层中使用了相同的方法,它没有返回任何行 - 它也没有抛出错误,让我陷入困境。

这些是类/方法:

API:

public class CompaniesController : ApiController
{
    CompaniesService _companiesService = new CompaniesService();

    public IEnumerable<Company> GetAllCompanies()
    {
        return _companiesService.GetAllCompanies();
    }
}

商家:

public class CompaniesService
{
    public List<Company> GetAllCompanies()
    {
        var companyRepository = new CompanyRepository();

        return companyRepository.GetAll();
    }
}

DAL:

public class CompanyRepository
{
    public List<Company> GetAll()
    {
        //create DBContext object
        using (var context = new dbEntities())
        {
            var data = context.Company.ToList();

            return data;
        }
    }
}

实体:

[Table("Companies")]
public class Company
{
    [Key]
    [Column("ID")]
    public int ID { get; set; }

    public string Name { get; set; }

    public string Symbol { get; set; }

    public string Exchange { get; set; }
}

我在Visual Studio 2013上使用Entity Framework 6并使用MySQL数据库。每个图层都在一个不同的项目中 - 以防万一这是一个基于参考的问题。

1 个答案:

答案 0 :(得分:0)

问题是一个简单的修复,我只是在API项目中没有正确的连接字符串。