c# - 通过 Entity Framework Core 在 SQL 中查询视图
问题描述
我正在尝试查询我在 Visual Studio 2019 中连接到的 SQL Server 中已经存在的视图。
我创建了一个与我的用户数据库名称相对应的类,名为UsersDbContext
.:
class UsersDbContext : DbContext
{
public DbSet<EventView> Users { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(@"Data Source=REDACTED;User ID=REDACTED;Password=REDACTERD;Connect Timeout=30;Encrypt=False;TrustServerCertificate=False;ApplicationIntent=ReadWrite;MultiSubnetFailover=False");
}
}
在这个数据库中,我有一个名为eventview.fss
. 如何从 Entity Framework 访问此处的数据?
在我要处理数据的主要课程中:
private static readonly UsersDbContext _context = new UsersDbContext();
var myid = _context.Users.FromSqlRaw($"SELECT Id FROM eventview.fss");
在我的模型类中,我为视图添加了一个模型。这很简单:
public class EventView
{
public string Date { get; set; }
public string Id { get; set; }
}
我错过了什么?理想情况下,我希望将视图中的行放入一个List<EventView>
然后我可以从那里处理数据。
编辑:当我尝试运行时,_context.Users.FromSqlRaw($"SELECT Id FROM eventview.fss").ToList();
我收到 SqlException 的错误:无效的对象名称 eventview.fss
解决方案
您可以告诉 EF Core 如何检索数据集,这样您就不需要使用原始 sql。在上下文中添加一个 dbset。在 OnModelCreating 中,类似:builder.Entity().HasNoKey().ToView("eventview.fss", "YourSchemaName");
推荐阅读
- java - 如何返回在 2 个班级之间选择的班级?
- java - 没有在 instagram 的搜索框中搜索
- angular - 如何通过嵌套键对可观察的数据进行分组?
- android - 无法通过 Android Studio 安装应用程序
- ios - 没有这样的模块 Firebase
- javascript - 如何从一个类中随机选择一个实例?
- r - 为 Shiny 打印 $\sigma$,而不是 $$\sigma$$
- python - 我不明白 len() 在这个练习中的用处
- c# - razor 下拉列表中的 UrlDecode 未解码字符串
- amazon-web-services - 如何设置从不同 AWS 账户访问 ElasticDomain?