Sample Code

This code sample demonstrates code necessary to create a blogging context of Blogs and Posts objects.

EF Core will create database schema tables mapping to these two objects. When the application is run, it will add a new blog entry to the Blogs table, then retrieve that entry back to the application.

// C#
using Oracle.EntityFrameworkCore;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;

namespace OracleBlog
{
	class Program
	{
		public class BloggingContext : DbContext
		{
			public DbSet<Blog> Blogs { get; set; }
			public DbSet<Post> Posts { get; set; }
			protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
			{
				optionsBuilder.UseOracle(@"User Id=blog;Password=<password>;Data Source=pdborcl;");
			}
		}
		public class Blog
		{
			public int BlogId { get; set; }
			public string Url { get; set; }
			public List<Post> Posts { get; set; }
		}
		public class Post
		{
			public int PostId { get; set; }
			public string Title { get; set; }
			public string Content { get; set; }
			public int BlogId { get; set; }
			public Blog Blog { get; set; }
		}
		static void Main(string[] args)
		{
			using (var db = new BloggingContext())
			{
				var blog = new Blog { Url = "https://blogs.example.com" };
				db.Blogs.Add(blog);
				db.SaveChanges();
			}
			using (var db = new BloggingContext())
			{
				var blogs = db.Blogs;
			}
		}
	}
}

Additional ODP.NET EF Core sample code is available on GitHub, including stored procedure and dependency injection examples.

https://github.com/oracle/dotnet-db-samples/tree/master/samples/dotnet-core/ef-core