我正在处理简单的ASP .NET MVC应用程序。我有一个简单的本地数据库。这个数据库包含一些表格。我为这个表格中的一个制作了模型,视图和控制器。我也做了DBContext类和连接字符串。似乎一切似乎工作正常,除了使用控制器的上下文返回空集。我确定该表至少包含一条记录。我不知道什么是错的。实体框架返回空集
有我的表架构:
CREATE TABLE [dbo].[SportsVenues] (
[Id] INT NOT NULL,
[Name] NVARCHAR (100) NOT NULL,
[Description] TEXT NOT NULL,
[Country] NVARCHAR (100) NULL,
[City] NVARCHAR (100) NULL,
[Street] NVARCHAR (100) NULL,
[Area] DECIMAL (18) NULL,
[PictureUrl] NVARCHAR (100) NULL,
[OppeningYear] DATETIME NULL,
PRIMARY KEY CLUSTERED ([Id] ASC)
);
有型号:
[Table("SportsVenues")]
public class SportsVenue
{
[Column("Id")]
public int Id { get; set; }
[Column("Name")]
public string Name { get; set; }
[Column("Description")]
public string Description { get; set; }
public string Country { get; set; }
public string City { get; set; }
public string Street { get; set; }
public double Area { get; set; }
public DateTime OppeningYear { get; set; }
}
有数据库上下文类:
public class StecSportsDBContext : DbContext
{
public DbSet<StecSports.Models.Trick> Tricks { get; set; }
public DbSet<StecSports.Models.Event> Events { get; set; }
public DbSet<StecSports.Models.SportsVenue> Venues { get; set; }
}
而且还有我的连接字符串:
<add name="StecSportsDBContext"
connectionString="Data Source=|DataDirectory|\StecSports.sdf"
providerName="System.Data.SqlServerCe.4.0"/>
我也检查发送到数据库的查询,并在新的查询页面中键入它后按预期返回数据。我在Windows 7上使用Visual Studio 2012. 如何获取存储在数据库中的数据?我做错了什么?
正如同Eric J.要求在控制器我简单地使用财产场馆从的DbContext类:
ViewBag.venuesList = db.Venues;
其被初始化为:
private StecSportsDBContext db = new StecSportsDBContext();
,它给了我这样的SQL查询:
{SELECT
[Extent1].[Id] AS [Id],
[Extent1].[Name] AS [Name],
[Extent1].[Description] AS [Description],
[Extent1].[Country] AS [Country],
[Extent1].[City] AS [City],
[Extent1].[Street] AS [Street],
[Extent1].[Area] AS [Area],
[Extent1].[OppeningYear] AS [OppeningYear]
FROM [SportsVenues] AS [Extent1]}
我确定这个查询工作并返回正确的数据,因为我复制它并在数据库上运行ase服务器。
你显示了一切,但实际上试图查询数据库的代码。 –
我只是使用像ViewBag.venuesList = db.Venues;它给我sql查询如{SELECT [Extent1]。[Id] AS [Id], [Extent1]。[Name] AS [Name], [Extent1]。[Description] AS [Description], [Extent1 ] [国家] AS [国家], [范围1]。[城市] AS [城市], [范围1]。[街道] AS [街道], [范围1]。[范围] AS [范围], [Extent1]。[OppeningYear] AS [OppeningYear] FROM [SportsVenues] AS [Extent1]}。 db变量初始化为私有StecSportsDBContext db = new StecSportsDBContext(); – user2800697
请用该代码编辑您的问题,而不是添加评论。 –