EntityFrameworkCore.FirebirdSQL
EntityFrameworkCore.FirebirdSQL copied to clipboard
FirebirdSQL database provider for Entity Framework Core.
trafficstars
Efforts should be redirected to:
https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient
EntityFrameworkCore.FirebirdSql for Firebird Server
| Provider | Package name | Stable (master branch) |
On test (dev branch) |
|---|---|---|---|
| Firebird SQL | EntityFrameworkCore.FirebirdSql |
The EntityFrameworkCore.FirebirdSql is an Entity Framework Core access provider for Firebird SQL, compatible with version 3.X and earlier versions 2.x.
Same uses the ADO.NET Library Firebird Client written by friend Cincura.
What we already have:
All basic operations are working well
Insert :heavy_check_mark: Update :heavy_check_mark: Delete :heavy_check_mark:
Insert Bulk :heavy_check_mark: Update Bulk :heavy_check_mark: Delete Bulk :heavy_check_mark:
Includes :heavy_check_mark: Complex Querys :heavy_check_mark:
Supports:
Guid, TimeStamp, Date, BigInt, Varchar, Text
IDENTITY INCREMENT FOR FIREBIRD 3.X And 4.0 (Alpha)
Example of use DBContext
//DataContext
public class BlogContext : DbContext
{
public DbSet<Blog> Blog { get; set; }
public DbSet<Post> Posts { get; set; }
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
string connectionString = "...";
optionsBuilder.UseFirebird(connectionString);
}
protected override void OnModelCreating(ModelBuilder modelo)
{
//Fluent Api
modelo.Entity<Blog>(entity =>
{
entity.HasIndex(e => e.BlogId)
.HasName("Id")
.IsUnique();
});
}
}
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; }
}
}
Example of use add
//Sample Use
var cx = new BlogContext();
//one
cx.Blog.Add(new Blog
{
Url = "https://github.com/ralmsdeveloper/EntityFrameworkCore.FirebirdSql"
});
cx.SaveChanges();
//Range
var RangeBlog = new List<Blog>
{
new Blog{ Url="https://github.com/ralmsdeveloper/EntityFrameworkCore.FirebirdSql" },
new Blog{ Url="https://github.com/ralmsdeveloper/" },
new Blog{ Url="https://blog.ralms.net" },
new Blog{ Url="https://ralms.net" }
};
cx.Blog.AddRange(RangeBlog);
cx.SaveChanges();
Example of use update
//Sample Use
var cx = new BlogContext();
var blog = cx.Blog.Find(1);
cx.Attach(blog);
blog.Url = "www.ralms.net";
cx.SaveChanges();
Example of use delete
//Sample Use
var cx = new BlogContext();
var blog = cx.Blog.Find(1);
cx.Delete(blog);
cx.SaveChanges();
Example of use where
//Sample Use
var cx = new BlogContext();
var blogs = cx.Blog.Where(p => p.BlogId > 0).ToList();