我正在使用Adam Freeman的书来尝试学习ASP.NET C#并遵循他的例子。我现在正在创建一个新的测试 应用我自己的数据库。我有一个简单的表叫做:“TestTbl”我想在这个表中显示信息 在网络表格中。
我创建了一个名为Item.cs的类,用于表示“TextTbl”中的行和EFDbContext.cs文件中的行 将Item.cs Item类与数据库相关联。然后,我为项目存储库创建了Repository.cs文件 使用EFDbContext进行操作。
最后,我创建了一个简单的Listing.aspx和相关的Listing.aspx.cs文件来输出并列出了所有的行。 “TestTbl。”当我使用Listing.aspx运行应用程序时,没有显示任何行,应用程序在我的表中创建了2个表 数据库,1)“dbo._Migration History”和一个名为“dbo.Items”的表,它是空的,没有行。
使用下面的代码可以告诉我我做错了什么。我只是想列出我的“TestTbl”中的行。这很明显 我说错了什么。你能说出如何解决这个问题。
=============================================================
Item.cs
=============================================================
using System.ComponentModel.DataAnnotations;
namespace Test.Models {
public class Item {
[Key]
public int pkTestID { get; set; }
public string Description { get; set; }
}
}
=============================================================
EFDbContext.cs
=============================================================
using System.Data.Entity;
namespace Test.Models.Repository {
public class EFDbContext : DbContext {
public DbSet<Item> TestTbl { get; set; }
}
}
=============================================================
Repository.cs
=============================================================
using System.Collections.Generic;
namespace Test.Models.Repository {
public class Repository {
private EFDbContext context = new EFDbContext();
public IEnumerable<Item> TestTbl {
get { return context.TestTbl; }
}
}
}
=============================================================
Listing.aspx
=============================================================
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Listing.aspx.cs" Inherits="Test.Pages.Listing" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<% foreach (Test.Models.Item prod in GetProducts())
{
Response.Write("<div class='item'>");
Response.Write(prod.Description);
Response.Write("</div>");
}%>
</div>
</form>
</body>
</html>
=============================================================
Listing.aspx.cs
=============================================================
using System;
using System.Collections.Generic;
using Test.Models;
using Test.Models.Repository;
namespace Test.Pages {
public partial class Listing : System.Web.UI.Page {
private Repository repo = new Repository();
protected void Page_Load(object sender, EventArgs e) {
}
protected IEnumerable<Item> GetProducts() {
return repo.TestTbl;
}
}
}