2
0
mirror of https://github.com/esiur/esiur-dotnet.git synced 2025-06-27 05:23:13 +00:00
This commit is contained in:
2020-02-26 03:14:22 +03:00
parent 7a21f6a928
commit fde1b1d8ad
39 changed files with 1108 additions and 502 deletions

View File

@ -3,6 +3,11 @@
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<AssemblyName>Esyur.Stores.EntityCore</AssemblyName>
<Authors>Ahmed Kh. Zamil</Authors>
<Company>Esyur Foundation</Company>
<Description>Esyur for Entity Framework Core</Description>
<Product>Esyur Entity Framework Extension</Product>
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
</PropertyGroup>
<ItemGroup>

View File

@ -35,18 +35,28 @@ namespace Esyur.Stores.EntityCore
{
public static class EsyurExtensions
{
public static T CreateResource<T>(this DbContext dbContext) where T:IResource
public static T CreateResource<T>(this DbContext dbContext, object properties = null) where T:class,IResource
{
return dbContext.GetInfrastructure().CreateResource<T>();
return dbContext.GetInfrastructure().CreateResource<T>(properties);
}
public static T CreateResource<T>(this IServiceProvider serviceProvider) where T:IResource
public static T CreateResource<T>(this DbSet<T> dbSet, object properties = null) where T:class,IResource
{
var resource = dbSet.GetInfrastructure().CreateResource<T>(properties);
dbSet.Add(resource);
return resource;
}
public static T CreateResource<T>(this IServiceProvider serviceProvider, object properties = null) where T:class,IResource
{
var options = serviceProvider.GetService<IDbContextOptions>().FindExtension<EsyurExtensionOptions>();
var manager = options.Store.Instance.Managers.Count > 0 ? options.Store.Instance.Managers.First() : null;
return Warehouse.New<T>("", options.Store, null, manager);
var resource = Warehouse.New<T>("", options.Store, null, null, null, properties);
resource.Instance.Managers.AddRange(options.Store.Instance.Managers.ToArray());
return resource;
}
public static DbContextOptionsBuilder UseEsyur(this DbContextOptionsBuilder optionsBuilder,