【问题标题】:How do you handle application that displays only views with EF4 plus Repository Pattern?您如何处理仅使用 EF4 plus Repository Pattern 显示视图的应用程序?
【发布时间】:2014-12-02 17:49:53
【问题描述】:

我的数据库有 5 个视图 (SQL Server 2008),客户端需要一个前端 Web (MVC4) 来查看带有过滤器的数据。我正在使用 Entity Framework 4 映射到数据库...不确定如何调整通常强制执行 CRUD 的存储库模式的实现。该应用程序是只读的,没有 DELETE、ADD 或 UPDATE。只是 GET 和过滤能力?

【问题讨论】:

  • 也许您应该首先问一个问题,如何以最简单的方式提供只读数据。为什么你需要一个存储库?当您可以按原样呈现视图数据时,您甚至不需要视图模型。所以也许只剩下过滤 DbSet 了。
  • Good Point Gert,我有时会卡在遵循约定和模式..

标签: sql-server-2008 asp.net-mvc-4 views entity-framework-4.1


【解决方案1】:

通常,在实现存储库模式时,您会执行以下操作:

public class ReadOnlyRepository<TEntity> : IReadOnlyRepository
    where TEntity : class
{
    // Read-only methods here
}

public class Repository<TEntity> : ReadOnlyRepository<TEntity>, IRepository
    where TEntity : class
{
    // Write methods here
}

然后您可以将ReadOnlyRepository&lt;SomeReadOnlyEntity&gt; 注入您想要只读访问的位置。

就 Entity Framework 而言,它可以与视图无缝协作。您只需将实体应附加到的视图指定为表名:

[Table("SomeView")]
public class SomeEntityFromView
{
    ...
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-21
    • 2012-02-02
    • 2011-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-29
    相关资源
    最近更新 更多