从实体框架

时间:2015-10-19 07:00:01

标签: c# sql-server entity-framework

我创建了一个数据库.mdf文件,调用了SportsStore.mdf。在这个数据库文件中,我创建了一个表并用行填充它。现在我试图获取这些行并将其打印到具有Entity Framework的视图。

我尝试使用存储库模式来处理实体框架。

在我名为SportsStore.domain的模型域中,我有三个重要文件:Entities / Product.cs,Concrete / EFDbContext.cs,Concrete / EFProductRepository.cs和Abstract / IProductsRepository.cs

IProductsRepository是EFProductRepository实现的接口。

IProductsRepository:

using SportsStore.domain.Entities;

namespace SportsStore.domain.Abstract
{
    public interface IProductRepository
    {
        IEnumerable<Product> Products { get; }
    }
}

EFDbContext:

using SportsStore.domain.Entities;

namespace SportsStore.domain.Concrete
{
    //Associate the model with the database
    //This class then automatically defines a property for each table in the database that I want to work with. 
    public class EFDbContext : DbContext {
        public DbSet<Product> Products { get; set; }
    }
}

EFProductRepository:

using SportsStore.domain.Abstract;
using SportsStore.domain.Entities;

namespace SportsStore.domain.Concrete
{
    public class EFProductRepository : IProductRepository
    {
        private EFDbContext context = new EFDbContext();

        public IEnumerable<Product> Products
        {
            get { return context.Products; } 
        }
    }
}

我还使用Ninject依赖注入将IProductRepository绑定到EFProductRepository:

kernel.Bind<IProductRepository>().To<EFProductRepository>();

这是我的控制器:

using SportsStore.domain.Abstract;
using SportsStore.domain.Entities;

namespace SportsStore.WebUI.Controllers
{
    public class ProductController : Controller
    {
        private IProductRepository repository;

        //Declar the dependency on IProductRepository
        public ProductController(IProductRepository productRepository)
        {
            this.repository = productRepository;
        }
        // GET: Product

        public ViewResult List()
        {
            return View(repository.Products.ToList());
        }

    }
}

如您所见,控制器正在使用IProductRepository接口。

这是我的观点:

@using SportsStore.domain.Entities
@model IEnumerable<Product>

@{
    ViewBag.Title = "Products";
}
           @foreach (var item in Model)
           {
            <tr>
                <td>
                    @Html.DisplayFor(modelItem => item.Description);
                </td>
                <td>
                    @Html.DisplayFor(modelItem => item.Price);
                </td>
                <td></td>
            </tr>
           }

的ConnectionString:

  <connectionStrings>
    <add name="SchoolContext"
         connectionString="Data Source=localhost\SQLEXPRESS;Initial Catalog=SportsStore;Integrated Security=SSPI;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

我遇到的问题是,当我运行我的应用程序时,没有打印出任何内容。没有显示任何错误消息或没有。

我怎样才能继续解决我的问题?我应该在哪里看?

0 个答案:

没有答案