C# 获取实体框架中多对一对象的原始SQL脚本
我正在使用Entity Framework Core与C#和SQL Server来运行一些用户提供的原始SQL查询,我需要找到一个SQL脚本,该脚本将返回具有多对一关系的对象列表 例如: 型号:C# 获取实体框架中多对一对象的原始SQL脚本,c#,sql,sql-server,entity-framework,entity-framework-core,C#,Sql,Sql Server,Entity Framework,Entity Framework Core,我正在使用Entity Framework Core与C#和SQL Server来运行一些用户提供的原始SQL查询,我需要找到一个SQL脚本,该脚本将返回具有多对一关系的对象列表 例如: 型号: class Invoice { public long Id { get; set; } public ICollection<Item> Items { get; set; } = new List<Item>(); } class Item {
class Invoice
{
public long Id { get; set; }
public ICollection<Item> Items { get; set; } = new List<Item>();
}
class Item
{
public long Id { get; set; }
public long InvoiceId { get; set; }
public Invoice Invoice { get; set; }
}
public class IcContext : DbContext
{
public IcContext(DbContextOptions options) : base(options) { }
public DbSet<Invoice> Invoices { get; set;
public DbSet<Item> Items { get; set; }
}
什么是有效的RawSql
字符串
我试过:
SELECT invoices.*, items.*
FROM invoices
LEFT JOIN items ON (invoices.id = items.invoiceId)
没用。为什么不直接使用Include()和LINQ查询的即时加载?@DavidBrowne-Microsoft我从应用程序的用户那里得到一个原始SQL字符串。我想知道用于测试目的的SQL脚本的格式,这似乎很奇怪。但无论如何,FromSql()都不能加载相关实体。每个查询都返回一个实体类型。为什么不使用Include()和LINQ查询的即时加载?@DavidBrowne-Microsoft我从应用程序的用户那里得到一个原始SQL字符串。我想知道用于测试目的的SQL脚本的格式,这似乎很奇怪。但无论如何,FromSql()都不能加载相关实体。每个查询返回一个实体类型。
SELECT invoices.*, items.*
FROM invoices
LEFT JOIN items ON (invoices.id = items.invoiceId)