实体框架代码优先筛选数据库上的数据,并从 EF 读取数据
本文关键字:数据 并从 读取 EF 数据库 代码 框架 筛选 实体 | 更新日期: 2023-09-27 18:32:34
我有一个采用EF代码优先方法的C#项目。目的是做粗制滥造的操作。我的 Web 应用将托管在 IIS 下的两个文件夹下
- 网络应用程序
- 周转基金服务
应用程序会将用户凭据传递给 WCF 服务,然后传递到 SQL Server 数据库。在这种情况下,代码优先方法效果很好。
读取方案:需要在数据库级别而不是应用程序级别筛选数据。因此,在使用EF查询SQL时,我无法直接调用表。用户对表没有读取访问权限,而只能对视图具有读取访问权限。SQL 视图将负责筛选数据,然后传递给服务。
问题是如何继续使用 EF 代码优先方法,以便我可以利用 EF 迁移的优势,然后将表映射到 SQL 视图。谁能解释一下如何继续这种读取场景和最佳方法?
实体框架不支持映射到 Sql 视图,但您可以执行以下操作:
- 创建映射 (sql) 视图结构的实体类。
- 使用
add-migration -IgnoreChanges
命令添加新的空迁移,因为您不希望实体映射到表。 - 在此迁移中,您可以创建(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