- dotConnect for Oracle 9.6.570
- EntityFramework Core 2.1.1
- .Net Core 2.1.1
Code: Select all
class Program
{
static void Main(string[] args)
{
var config = OracleEntityProviderConfig.Instance;
config.Workarounds.DisableQuoting = true;
var context = new MyDbContext();
var result = (from o in context.MasterOrders
join p in context.Products on o.ProductId equals p.Id into products
from p in products.DefaultIfEmpty()
select new { o.Id, o.Code, p.Name, p.Length }).OrderBy(o => o.Id).Take(10).ToList();
}
}
class MyDbContext : DbContext
{
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseOracle(@"REDACTED");
}
public DbSet<Product> Products { get; set; }
public DbSet<MasterOrder> MasterOrders { get; set; }
}
class Product
{
[Key]
public int Id { get; set; }
public string Name { get; set; }
public int Length { get; set; }
}
class MasterOrder
{
[Key]
public int Id { get; set; }
public string Code { get; set; }
public int ProductId { get; set; }
}
Code: Select all
SELECT t.Id, t.Code, t.Name
FROM (
SELECT o.Id, o.Code, p.Name, p.Length
FROM MasterOrders o
LEFT JOIN Products p ON o.ProductId = p.Id
ORDER BY o.Id
) t
WHERE ROWNUM <= :p__p_0