Use the configuration depending on the selected database provider #13
							
								
								
									
										22
									
								
								SqlData/Persistence/Common/ModelBuilderExtensions.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								SqlData/Persistence/Common/ModelBuilderExtensions.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,22 @@ | ||||
| using Microsoft.EntityFrameworkCore; | ||||
| using System.Linq; | ||||
|  | ||||
| namespace Mirea.Api.DataAccess.Persistence.Common; | ||||
|  | ||||
| public static class ModelBuilderExtensions | ||||
| { | ||||
|     public static void ApplyConfiguration(this ModelBuilder modelBuilder, object configuration) | ||||
|     { | ||||
|         var applyGenericMethod = typeof(ModelBuilder) | ||||
|             .GetMethods() | ||||
|             .First(m => m.Name == "ApplyConfiguration" && | ||||
|                         m.GetParameters().Any(p => p.ParameterType.GetGenericTypeDefinition() == typeof(IEntityTypeConfiguration<>))); | ||||
|  | ||||
|         var entityType = configuration.GetType().GetInterfaces() | ||||
|             .First(i => i.IsGenericType && i.GetGenericTypeDefinition() == typeof(IEntityTypeConfiguration<>)) | ||||
|             .GetGenericArguments()[0]; | ||||
|  | ||||
|         var applyConcreteMethod = applyGenericMethod.MakeGenericMethod(entityType); | ||||
|         applyConcreteMethod.Invoke(modelBuilder, [configuration]); | ||||
|     } | ||||
| } | ||||
		Reference in New Issue
	
	Block a user