显示现有表中的行

时间:2013-12-09 22:18:41

标签: entity-framework

我正在使用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;
        }

    }
}

0 个答案:

没有答案