mirror of https://github.com/abpframework/abp.git
15 changed files with 322 additions and 20 deletions
@ -0,0 +1,92 @@ |
|||
// <auto-generated />
|
|||
using AbpDesk.EntityFrameworkCore; |
|||
using Microsoft.EntityFrameworkCore; |
|||
using Microsoft.EntityFrameworkCore.Infrastructure; |
|||
using Microsoft.EntityFrameworkCore.Metadata; |
|||
using Microsoft.EntityFrameworkCore.Migrations; |
|||
using Microsoft.EntityFrameworkCore.Storage; |
|||
using Microsoft.EntityFrameworkCore.Storage.Internal; |
|||
using System; |
|||
|
|||
namespace AbpDesk.EntityFrameworkCore.Migrations |
|||
{ |
|||
[DbContext(typeof(AbpDeskDbContext))] |
|||
[Migration("20180105184326_MultiTenancyModuleAdded")] |
|||
partial class MultiTenancyModuleAdded |
|||
{ |
|||
protected override void BuildTargetModel(ModelBuilder modelBuilder) |
|||
{ |
|||
#pragma warning disable 612, 618
|
|||
modelBuilder |
|||
.HasAnnotation("ProductVersion", "2.0.0-rtm-26452") |
|||
.HasAnnotation("SqlServer:ValueGenerationStrategy", SqlServerValueGenerationStrategy.IdentityColumn); |
|||
|
|||
modelBuilder.Entity("AbpDesk.Tickets.Ticket", b => |
|||
{ |
|||
b.Property<int>("Id") |
|||
.ValueGeneratedOnAdd(); |
|||
|
|||
b.Property<string>("Body") |
|||
.HasMaxLength(65536); |
|||
|
|||
b.Property<string>("ConcurrencyStamp") |
|||
.IsConcurrencyToken(); |
|||
|
|||
b.Property<string>("Title") |
|||
.IsRequired() |
|||
.HasMaxLength(256); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.ToTable("DskTickets"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("Volo.Abp.MultiTenancy.Tenant", b => |
|||
{ |
|||
b.Property<Guid>("Id") |
|||
.ValueGeneratedOnAdd(); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(64); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("Name"); |
|||
|
|||
b.ToTable("MtTenants"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("Volo.Abp.MultiTenancy.TenantConnectionString", b => |
|||
{ |
|||
b.Property<Guid>("Id") |
|||
.ValueGeneratedOnAdd(); |
|||
|
|||
b.Property<string>("Name") |
|||
.IsRequired() |
|||
.HasMaxLength(256); |
|||
|
|||
b.Property<Guid>("TenantId"); |
|||
|
|||
b.Property<string>("Value") |
|||
.IsRequired() |
|||
.HasMaxLength(1024); |
|||
|
|||
b.HasKey("Id"); |
|||
|
|||
b.HasIndex("TenantId"); |
|||
|
|||
b.ToTable("MtTenantConnectionStrings"); |
|||
}); |
|||
|
|||
modelBuilder.Entity("Volo.Abp.MultiTenancy.TenantConnectionString", b => |
|||
{ |
|||
b.HasOne("Volo.Abp.MultiTenancy.Tenant") |
|||
.WithMany("ConnectionStrings") |
|||
.HasForeignKey("TenantId") |
|||
.OnDelete(DeleteBehavior.Cascade); |
|||
}); |
|||
#pragma warning restore 612, 618
|
|||
} |
|||
} |
|||
} |
|||
@ -0,0 +1,63 @@ |
|||
using Microsoft.EntityFrameworkCore.Migrations; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
|
|||
namespace AbpDesk.EntityFrameworkCore.Migrations |
|||
{ |
|||
public partial class MultiTenancyModuleAdded : Migration |
|||
{ |
|||
protected override void Up(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.CreateTable( |
|||
name: "MtTenants", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
|||
Name = table.Column<string>(type: "nvarchar(64)", maxLength: 64, nullable: false) |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_MtTenants", x => x.Id); |
|||
}); |
|||
|
|||
migrationBuilder.CreateTable( |
|||
name: "MtTenantConnectionStrings", |
|||
columns: table => new |
|||
{ |
|||
Id = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
|||
Name = table.Column<string>(type: "nvarchar(256)", maxLength: 256, nullable: false), |
|||
TenantId = table.Column<Guid>(type: "uniqueidentifier", nullable: false), |
|||
Value = table.Column<string>(type: "nvarchar(1024)", maxLength: 1024, nullable: false) |
|||
}, |
|||
constraints: table => |
|||
{ |
|||
table.PrimaryKey("PK_MtTenantConnectionStrings", x => x.Id); |
|||
table.ForeignKey( |
|||
name: "FK_MtTenantConnectionStrings_MtTenants_TenantId", |
|||
column: x => x.TenantId, |
|||
principalTable: "MtTenants", |
|||
principalColumn: "Id", |
|||
onDelete: ReferentialAction.Cascade); |
|||
}); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_MtTenantConnectionStrings_TenantId", |
|||
table: "MtTenantConnectionStrings", |
|||
column: "TenantId"); |
|||
|
|||
migrationBuilder.CreateIndex( |
|||
name: "IX_MtTenants_Name", |
|||
table: "MtTenants", |
|||
column: "Name"); |
|||
} |
|||
|
|||
protected override void Down(MigrationBuilder migrationBuilder) |
|||
{ |
|||
migrationBuilder.DropTable( |
|||
name: "MtTenantConnectionStrings"); |
|||
|
|||
migrationBuilder.DropTable( |
|||
name: "MtTenants"); |
|||
} |
|||
} |
|||
} |
|||
@ -1,7 +1,7 @@ |
|||
namespace Volo.Abp.EntityFrameworkCore |
|||
{ |
|||
public interface IDbContextProvider<out TDbContext> |
|||
where TDbContext : AbpDbContext<TDbContext> |
|||
where TDbContext : IEfCoreDbContext |
|||
{ |
|||
TDbContext GetDbContext(); |
|||
} |
|||
|
|||
@ -1,14 +1,86 @@ |
|||
using Microsoft.EntityFrameworkCore; |
|||
using System; |
|||
using System.Collections.Generic; |
|||
using System.Threading; |
|||
using System.Threading.Tasks; |
|||
using JetBrains.Annotations; |
|||
using Microsoft.EntityFrameworkCore; |
|||
using Microsoft.EntityFrameworkCore.ChangeTracking; |
|||
using Microsoft.EntityFrameworkCore.Infrastructure; |
|||
using Microsoft.EntityFrameworkCore.Internal; |
|||
|
|||
namespace Volo.Abp.EntityFrameworkCore |
|||
{ |
|||
public interface IEfCoreDbContext |
|||
public interface IEfCoreDbContext : IDisposable, IInfrastructure<IServiceProvider>, IDbContextDependencies, IDbSetCache, IDbContextPoolable |
|||
{ |
|||
EntityEntry<TEntity> Attach<TEntity>([NotNull] TEntity entity) where TEntity : class; |
|||
|
|||
EntityEntry Attach([NotNull] object entity); |
|||
|
|||
int SaveChanges(); |
|||
|
|||
int SaveChanges(bool acceptAllChangesOnSuccess); |
|||
|
|||
Task<int> SaveChangesAsync(bool acceptAllChangesOnSuccess, CancellationToken cancellationToken = default); |
|||
|
|||
Task<int> SaveChangesAsync(CancellationToken cancellationToken = default); |
|||
|
|||
DbSet<T> Set<T>() |
|||
where T: class; |
|||
|
|||
DatabaseFacade Database { get; } |
|||
|
|||
ChangeTracker ChangeTracker { get; } |
|||
|
|||
EntityEntry Add([NotNull] object entity); |
|||
|
|||
EntityEntry<TEntity> Add<TEntity>([NotNull] TEntity entity) where TEntity : class; |
|||
|
|||
Task<EntityEntry> AddAsync([NotNull] object entity, CancellationToken cancellationToken = default); |
|||
|
|||
Task<EntityEntry<TEntity>> AddAsync<TEntity>([NotNull] TEntity entity, CancellationToken cancellationToken = default) where TEntity : class; |
|||
|
|||
void AddRange([NotNull] IEnumerable<object> entities); |
|||
|
|||
void AddRange([NotNull] params object[] entities); |
|||
|
|||
Task AddRangeAsync([NotNull] params object[] entities); |
|||
|
|||
Task AddRangeAsync([NotNull] IEnumerable<object> entities, CancellationToken cancellationToken = default); |
|||
|
|||
void AttachRange([NotNull] IEnumerable<object> entities); |
|||
|
|||
void AttachRange([NotNull] params object[] entities); |
|||
|
|||
EntityEntry<TEntity> Entry<TEntity>([NotNull] TEntity entity) where TEntity : class; |
|||
|
|||
EntityEntry Entry([NotNull] object entity); |
|||
|
|||
object Find([NotNull] Type entityType, [NotNull] params object[] keyValues); |
|||
|
|||
TEntity Find<TEntity>([NotNull] params object[] keyValues) where TEntity : class; |
|||
|
|||
Task<object> FindAsync([NotNull] Type entityType, [NotNull] object[] keyValues, CancellationToken cancellationToken); |
|||
|
|||
Task<TEntity> FindAsync<TEntity>([NotNull] object[] keyValues, CancellationToken cancellationToken) where TEntity : class; |
|||
|
|||
Task<TEntity> FindAsync<TEntity>([NotNull] params object[] keyValues) where TEntity : class; |
|||
|
|||
Task<object> FindAsync([NotNull] Type entityType, [NotNull] params object[] keyValues); |
|||
|
|||
EntityEntry<TEntity> Remove<TEntity>([NotNull] TEntity entity) where TEntity : class; |
|||
|
|||
EntityEntry Remove([NotNull] object entity); |
|||
|
|||
void RemoveRange([NotNull] IEnumerable<object> entities); |
|||
|
|||
void RemoveRange([NotNull] params object[] entities); |
|||
|
|||
EntityEntry<TEntity> Update<TEntity>([NotNull] TEntity entity) where TEntity : class; |
|||
|
|||
EntityEntry Update([NotNull] object entity); |
|||
|
|||
void UpdateRange([NotNull] params object[] entities); |
|||
|
|||
void UpdateRange([NotNull] IEnumerable<object> entities); |
|||
} |
|||
} |
|||
|
|||
Loading…
Reference in new issue