实体框架代码优先筛选数据库上的数据,并从 EF 读取数据

本文关键字:数据 并从 读取 EF 数据库 代码 框架 筛选 实体 | 更新日期: 2023-09-27 18:32:34

我有一个采用EF代码优先方法的C#项目。目的是做粗制滥造的操作。我的 Web 应用将托管在 IIS 下的两个文件夹下

  1. 网络应用程序
  2. 周转基金服务

应用程序会将用户凭据传递给 WCF 服务,然后传递到 SQL Server 数据库。在这种情况下,代码优先方法效果很好。

读取方案:需要在数据库级别而不是应用程序级别筛选数据。因此,在使用EF查询SQL时,我无法直接调用表。用户对表没有读取访问权限,而只能对视图具有读取访问权限。SQL 视图将负责筛选数据,然后传递给服务。

问题是如何继续使用 EF 代码优先方法,以便我可以利用 EF 迁移的优势,然后将表映射到 SQL 视图。谁能解释一下如何继续这种读取场景和最佳方法?

实体框架代码优先筛选数据库上的数据,并从 EF 读取数据

实体框架不支持映射到 Sql 视图,但您可以执行以下操作:

  1. 创建映射 (sql) 视图结构的实体类。
  2. 使用 add-migration -IgnoreChanges 命令添加新的迁移,因为您不希望实体映射到表。
  3. 在此迁移中,您可以创建(Up 方法)您的 Sql 视图。

请务必注意,您必须在实体("视图实体?")配置(映射)类中指示 Sql 视图名称:

public class FooConfiguration : EntityTypeConfiguration<Foo>
{
    public FooConfiguration()
    {
        ToTable("ViewName");
        HasKey(p => p.Id); // You also have to configure a key
    }
}

朱莉·勒曼(Julie Lerman)的这篇文章可能对您来说很有趣:https://msdn.microsoft.com/en-us/magazine/dn519921.aspx

相关文章: