Robert 1 жил өмнө
parent
commit
db69dba8ef

+ 1 - 0
EVCB_OCPP.WSServer/EVCB_OCPP.WSServer.csproj

@@ -42,6 +42,7 @@
   <ItemGroup>
     <PackageReference Include="Dapper" Version="2.0.143" />
     <PackageReference Include="Microsoft.EntityFrameworkCore" Version="7.0.12" />
+    <PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="7.0.12" />
     <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="7.0.10" />
     <PackageReference Include="Microsoft.Extensions.Caching.Memory" Version="7.0.0" />
     <PackageReference Include="Microsoft.Extensions.Configuration.UserSecrets" Version="7.0.0" />

+ 5 - 110
EVCB_OCPP.WSServer/Helper/AddPortalDbContext.cs

@@ -1,4 +1,5 @@
 using EVCB_OCPP.Domain;
+using EVCB_OCPP.Domain.Extensions;
 using Microsoft.Data.SqlClient;
 using Microsoft.EntityFrameworkCore;
 using Microsoft.Extensions.Configuration;
@@ -19,57 +20,6 @@ namespace EVCB_OCPP.WSServer.Helper;
 public static class AddPortalDbContext
 {
     public const string CommandTimeoutKey = "CommandTimeout";
-    public static IServiceCollection AddMainDbContext(this IServiceCollection services, IConfiguration configuration)
-    { 
-        const string DbUserIdKey = "MainDbUserIdKey";
-        const string DbPassKey = "MainDbPass";
-        const string DbConnectionStringKey = "MainDBContext";
-
-        var conneciotnString = GetConnectionString(configuration, DbUserIdKey, DbPassKey, DbConnectionStringKey);
-
-        services.AddSingleton(
-            (serviceProvider) =>
-            new SqlConnectionFactory<MainDBContext>(serviceProvider.GetRequiredService<ILogger<SqlConnectionFactory>>())
-            {
-                ConnectionString = conneciotnString
-            });
-        AddPortalDbContextInternal<MainDBContext>(services, configuration, conneciotnString, logToConsole: false);
-        return services;
-    }
-
-    public static IServiceCollection AddMeterValueDbContext(this IServiceCollection services, IConfiguration configuration)
-    {
-        const string DbUserIdKey = "MeterValueDbUserId";
-        const string DbPassKey = "MeterValueDbPass";
-        const string DbConnectionStringKey = "MeterValueDBContext";
-
-        var conneciotnString = GetConnectionString(configuration, DbUserIdKey, DbPassKey, DbConnectionStringKey);
-        services.AddSingleton(
-            (serviceProvider) =>
-            new SqlConnectionFactory<MeterValueDBContext>(serviceProvider.GetRequiredService<ILogger<SqlConnectionFactory>>())
-            {
-                ConnectionString = conneciotnString
-            });
-        AddPortalDbContextInternal<MeterValueDBContext>(services, configuration, conneciotnString, logToConsole: false);
-        return services;
-    }
-
-    public static IServiceCollection AddConnectionLogDbContext(this IServiceCollection services, IConfiguration configuration)
-    {
-        const string DbUserIdKey = "ConnectionLogDbUserId";
-        const string DbPassKey = "ConnectionLogDbPass";
-        const string DbConnectionStringKey = "ConnectionLogDBContext";
-
-        var conneciotnString = GetConnectionString(configuration, DbUserIdKey, DbPassKey, DbConnectionStringKey);
-        services.AddSingleton(
-            (serviceProvider) =>
-            new SqlConnectionFactory<ConnectionLogDBContext>(serviceProvider.GetRequiredService<ILogger<SqlConnectionFactory>>())
-            {
-                ConnectionString = conneciotnString
-            });
-        AddPortalDbContextInternal<ConnectionLogDBContext>(services, configuration, conneciotnString);
-        return services;
-    }
 
     public static IServiceCollection AddWebDBConetext(this IServiceCollection services, IConfiguration configuration)
     {
@@ -77,13 +27,8 @@ public static class AddPortalDbContext
         const string DbPassKey = "WebDbPass";
         const string DbConnectionStringKey = "WebDBContext";
 
-        var conneciotnString = GetConnectionString(configuration, DbUserIdKey, DbPassKey, DbConnectionStringKey);
-        services.AddSingleton(
-            (serviceProvider) =>
-            new SqlConnectionFactory<WebDBConetext>(serviceProvider.GetRequiredService<ILogger<SqlConnectionFactory>>())
-            {
-                ConnectionString = conneciotnString
-            });
+        var conneciotnString = configuration.GetConnectionString(DbUserIdKey, DbPassKey, DbConnectionStringKey);
+        services.AddSqlConnectionFactory<WebDBConetext>(conneciotnString);
         return services;
     }
 
@@ -93,13 +38,8 @@ public static class AddPortalDbContext
         const string DbPassKey = "OnlineLogDbPass";
         const string DbConnectionStringKey = "OnlineLogDBContext";
 
-        var conneciotnString = GetConnectionString(configuration, DbUserIdKey, DbPassKey, DbConnectionStringKey);
-        services.AddSingleton(
-            (serviceProvider) =>
-            new SqlConnectionFactory<OnlineLogDBContext>(serviceProvider.GetRequiredService<ILogger<SqlConnectionFactory>>())
-            {
-                ConnectionString = conneciotnString
-            });
+        var conneciotnString = configuration.GetConnectionString(DbUserIdKey, DbPassKey, DbConnectionStringKey);
+        services.AddSqlConnectionFactory<OnlineLogDBContext>(conneciotnString);
         return services;
     }
 
@@ -118,51 +58,6 @@ public static class AddPortalDbContext
             options.UseLoggerFactory(serviceProvider.GetRequiredService<ILoggerFactory>());
         });
     }
-
-    private static string GetConnectionString(IConfiguration configuration, string UserIdKey, string DbPassKey, string ConnectionStringKey ) 
-    {
-        string mainDbUserId = string.IsNullOrEmpty(configuration[UserIdKey]) ? string.Empty : $"user id={configuration[UserIdKey]};";
-        string mainDbUserPass = string.IsNullOrEmpty(configuration[DbPassKey]) ? string.Empty : $"password={configuration[DbPassKey]};";
-        return $"{configuration.GetConnectionString(ConnectionStringKey)}{mainDbUserId}{mainDbUserPass}";
-    }
-}
-
-public class SqlConnectionFactory<T> where T: DbContext
-{
-    private readonly ILogger<SqlConnectionFactory> logger;
-
-    public string ConnectionString { get; init; }
-    public SqlConnectionFactory(ILogger<SqlConnectionFactory> logger)
-    {
-        this.logger = logger;
-    }
-
-    public SqlConnection Create()
-    {
-        var sqlConnection = new SqlConnection(ConnectionString);
-        sqlConnection.Open();
-        return sqlConnection;
-    }
-
-    public async Task<SqlConnection> CreateAsync()
-    {
-        var timer = Stopwatch.StartNew();
-        long t0, t1;
-
-        var sqlConnection = new SqlConnection(ConnectionString);
-        t0 = timer.ElapsedMilliseconds;
-
-        await sqlConnection.OpenAsync();
-        t1 = timer.ElapsedMilliseconds;
-        timer.Stop();
-
-        if (t1 > 500)
-        {
-            logger.LogWarning($"{typeof(T)} SqlConnection Open slow {t0}/{t1}");
-        }
-
-        return sqlConnection;
-    }
 }
 
 /// <summary>

+ 3 - 2
EVCB_OCPP.WSServer/Helper/MeterValueGroupSingleHandler.cs

@@ -1,5 +1,6 @@
 using Dapper;
 using EVCB_OCPP.Domain;
+using EVCB_OCPP.Domain.ConnectionFactory;
 using EVCB_OCPP.WSServer.Service;
 using Microsoft.Data.SqlClient;
 using Microsoft.EntityFrameworkCore;
@@ -20,7 +21,7 @@ public class MeterValueGroupSingleHandler
 {
     public MeterValueGroupSingleHandler(
         IDbContextFactory<MeterValueDBContext> meterValueDbContextFactory,
-        SqlConnectionFactory<MeterValueDBContext> connectionFactory,
+        ISqlConnectionFactory<MeterValueDBContext> connectionFactory,
         IConfiguration configuration,
         ILogger<MeterValueGroupSingleHandler> logger)
     {
@@ -42,7 +43,7 @@ public class MeterValueGroupSingleHandler
     }
 
     private readonly IDbContextFactory<MeterValueDBContext> meterValueDbContextFactory;
-    private readonly SqlConnectionFactory<MeterValueDBContext> connectionFactory;
+    private readonly ISqlConnectionFactory<MeterValueDBContext> connectionFactory;
     private readonly IConfiguration configuration;
 
     //private readonly Func<IEnumerable<T>, Task> handleFunc;

+ 1 - 0
EVCB_OCPP.WSServer/HostedProtalServer.cs

@@ -1,4 +1,5 @@
 using EVCB_OCPP.Domain;
+using EVCB_OCPP.Domain.Extensions;
 using EVCB_OCPP.Service;
 using EVCB_OCPP.WSServer.Fake;
 using EVCB_OCPP.WSServer.Helper;

+ 3 - 2
EVCB_OCPP.WSServer/Jobs/ServerSetFeeJob.cs

@@ -1,5 +1,6 @@
 using Dapper;
 using EVCB_OCPP.Domain;
+using EVCB_OCPP.Domain.ConnectionFactory;
 using EVCB_OCPP.Packet.Features;
 using EVCB_OCPP.Packet.Messages.Core;
 using EVCB_OCPP.WSServer.Dto;
@@ -26,7 +27,7 @@ namespace EVCB_OCPP.WSServer.Jobs;
 public class ServerSetFeeJob : IJob
 {
     private readonly ProtalServer protalServer;
-    private readonly SqlConnectionFactory<WebDBConetext> webDbConnectionFactory;
+    private readonly ISqlConnectionFactory<WebDBConetext> webDbConnectionFactory;
     private readonly ServerMessageService messageService;
     private readonly IMainDbService mainDbService;
     private readonly ILogger<ServerSetFeeJob> logger;
@@ -35,7 +36,7 @@ public class ServerSetFeeJob : IJob
     public ServerSetFeeJob(
         ProtalServer protalServer,
         //IConfiguration configuration,
-        SqlConnectionFactory<WebDBConetext> sqlConnectionFactory,
+        ISqlConnectionFactory<WebDBConetext> sqlConnectionFactory,
         ServerMessageService messageService,
         IMainDbService mainDbService,
         ILogger<ServerSetFeeJob> logger)

+ 3 - 2
EVCB_OCPP.WSServer/Jobs/SmartChargingJob.cs

@@ -12,6 +12,7 @@ using Microsoft.Extensions.Configuration;
 using Dapper;
 using Microsoft.Extensions.Logging;
 using EVCB_OCPP.WSServer.Helper;
+using EVCB_OCPP.Domain.ConnectionFactory;
 
 namespace EVCB_OCPP.WSServer.Jobs;
 
@@ -20,7 +21,7 @@ public class SmartChargingJob : IJob
 {
     public SmartChargingJob(
         ProtalServer protalServer,
-        SqlConnectionFactory<WebDBConetext> webDbConnectionFactory,
+        ISqlConnectionFactory<WebDBConetext> webDbConnectionFactory,
         //IConfiguration configuration,
         ILogger<SmartChargingJob> logger)
     {
@@ -32,7 +33,7 @@ public class SmartChargingJob : IJob
 
     //private readonly string webConnectionString;
     private readonly ProtalServer protalServer;
-    private readonly SqlConnectionFactory<WebDBConetext> webDbConnectionFactory;
+    private readonly ISqlConnectionFactory<WebDBConetext> webDbConnectionFactory;
     private readonly ILogger<SmartChargingJob> logger;
     private static List<StationInfoDto> _StationInfo = new List<StationInfoDto>();
 

+ 3 - 2
EVCB_OCPP.WSServer/Message/CoreProfileHandler.cs

@@ -20,6 +20,7 @@ using System.Globalization;
 
 using EVCB_OCPP.WSServer.Service.WsService;
 using EVCB_OCPP.Domain.Models.MainDb;
+using EVCB_OCPP.Domain.ConnectionFactory;
 
 namespace EVCB_OCPP.WSServer.Message;
 
@@ -70,7 +71,7 @@ internal partial class ProfileHandler
 
     //private readonly string webConnectionString;// = ConfigurationManager.ConnectionStrings[].ConnectionString;
     private readonly IDbContextFactory<MainDBContext> maindbContextFactory;
-    private readonly SqlConnectionFactory<WebDBConetext> webDbConnectionFactory;
+    private readonly ISqlConnectionFactory<WebDBConetext> webDbConnectionFactory;
     private readonly MeterValueDbService meterValueDbService;
 
     //private readonly IDbContextFactory<MeterValueDBContext> metervaluedbContextFactory;
@@ -81,7 +82,7 @@ internal partial class ProfileHandler
     public ProfileHandler(
         IConfiguration configuration,
         IDbContextFactory<MainDBContext> maindbContextFactory,
-        SqlConnectionFactory<WebDBConetext> webDbConnectionFactory,
+        ISqlConnectionFactory<WebDBConetext> webDbConnectionFactory,
         //IDbContextFactory<MeterValueDBContext> metervaluedbContextFactory,
         MeterValueDbService meterValueDbService,
         IBusinessServiceFactory businessServiceFactory,

+ 4 - 3
EVCB_OCPP.WSServer/ProtalServer.cs

@@ -27,6 +27,7 @@ using System.Collections.Concurrent;
 using Microsoft.Extensions.Logging;
 using EVCB_OCPP.WSServer.Service.WsService;
 using System.Net.WebSockets;
+using EVCB_OCPP.Domain.ConnectionFactory;
 
 namespace EVCB_OCPP.WSServer
 {
@@ -55,8 +56,8 @@ namespace EVCB_OCPP.WSServer
             , IDbContextFactory<MainDBContext> maindbContextFactory
             , IMainDbService mainDbService
             , IDbContextFactory<ConnectionLogDBContext> connectionLogdbContextFactory
-            , SqlConnectionFactory<WebDBConetext> webDbConnectionFactory
-            , SqlConnectionFactory<MainDBContext> mainDbConnectionFactory
+            , ISqlConnectionFactory<WebDBConetext> webDbConnectionFactory
+            , ISqlConnectionFactory<MainDBContext> mainDbConnectionFactory
             , IHostEnvironment environment
             //, IOCPPWSServerFactory ocppWSServerFactory
             , IConnectionLogdbService connectionLogdbService
@@ -99,7 +100,7 @@ namespace EVCB_OCPP.WSServer
         //private readonly IServiceProvider serviceProvider;
         private readonly IDbContextFactory<MainDBContext> maindbContextFactory;
         private readonly IMainDbService mainDbService;
-        private readonly SqlConnectionFactory<WebDBConetext> webDbConnectionFactory;
+        private readonly ISqlConnectionFactory<WebDBConetext> webDbConnectionFactory;
 
         //private readonly IDbContextFactory<ConnectionLogDBContext> connectionLogdbContextFactory;
         //private readonly IOCPPWSServerFactory ocppWSServerFactory;

+ 3 - 2
EVCB_OCPP.WSServer/Service/BlockingTreePrintService.cs

@@ -1,5 +1,6 @@
 using Dapper;
 using EVCB_OCPP.Domain;
+using EVCB_OCPP.Domain.ConnectionFactory;
 using EVCB_OCPP.WSServer.Helper;
 using Microsoft.Data.SqlClient;
 using Microsoft.Extensions.Logging;
@@ -15,7 +16,7 @@ namespace EVCB_OCPP.WSServer.Service
     public class BlockingTreePrintService
     {
         public BlockingTreePrintService(ILogger<BlockingTreePrintService> logger,
-            SqlConnectionFactory<MainDBContext> connectionFactory)
+            ISqlConnectionFactory<MainDBContext> connectionFactory)
         {
             this.logger = logger;
             this.connectionFactory = connectionFactory;
@@ -97,7 +98,7 @@ namespace EVCB_OCPP.WSServer.Service
             ORDER BY LEVEL ASC
             """;
         private readonly ILogger<BlockingTreePrintService> logger;
-        private readonly SqlConnectionFactory<MainDBContext> connectionFactory;
+        private readonly ISqlConnectionFactory<MainDBContext> connectionFactory;
     }
 
     public class TreeStruct

+ 3 - 2
EVCB_OCPP.WSServer/Service/ConnectionLogdbService.cs

@@ -1,5 +1,6 @@
 using Dapper;
 using EVCB_OCPP.Domain;
+using EVCB_OCPP.Domain.ConnectionFactory;
 using EVCB_OCPP.WSServer.Helper;
 using EVCB_OCPP.WSServer.Service.WsService;
 using log4net;
@@ -32,7 +33,7 @@ public class ConnectionLogdbService : IConnectionLogdbService
 
     public ConnectionLogdbService(
         IDbContextFactory<ConnectionLogDBContext> connectionLogdbContextFactory,
-        SqlConnectionFactory<ConnectionLogDBContext> sqlConnectionFactory,
+        ISqlConnectionFactory<ConnectionLogDBContext> sqlConnectionFactory,
         ILogger<ConnectionLogdbService> logger,
         IConfiguration configuration)
     {
@@ -48,7 +49,7 @@ public class ConnectionLogdbService : IConnectionLogdbService
     }
 
     private readonly IDbContextFactory<ConnectionLogDBContext> connectionLogdbContextFactory;
-    private readonly SqlConnectionFactory<ConnectionLogDBContext> sqlConnectionFactory;
+    private readonly ISqlConnectionFactory<ConnectionLogDBContext> sqlConnectionFactory;
     private readonly ILogger<ConnectionLogdbService> logger;
     private readonly QueueHandler<MachineLog> queueHandler;
     //private readonly string connectionLogdbConnectionString;

+ 4 - 3
EVCB_OCPP.WSServer/Service/LoadingBalanceService.cs

@@ -1,5 +1,6 @@
 using Dapper;
 using EVCB_OCPP.Domain;
+using EVCB_OCPP.Domain.ConnectionFactory;
 using EVCB_OCPP.WSServer.Helper;
 using Microsoft.Data.SqlClient;
 using Microsoft.Extensions.Configuration;
@@ -27,13 +28,13 @@ namespace EVCB_OCPP.WSServer.Service
     {
         //ConcurrentDictionary<int, object> _lockDic = new ConcurrentDictionary<int, object>();
         ConcurrentDictionary<int, SemaphoreSlim> _semaphoreDic = new ConcurrentDictionary<int, SemaphoreSlim>();
-        private readonly SqlConnectionFactory<MainDBContext> mainDbConnectionFactory;
-        private readonly SqlConnectionFactory<WebDBConetext> webDbConnectionFactory;
+        private readonly ISqlConnectionFactory<MainDBContext> mainDbConnectionFactory;
+        private readonly ISqlConnectionFactory<WebDBConetext> webDbConnectionFactory;
 
         //private readonly string mainConnectionString;
         //private readonly string webConnectionString;
 
-        public LoadingBalanceService(SqlConnectionFactory<MainDBContext> mainDbConnectionFactory, SqlConnectionFactory<WebDBConetext> webDbConnectionFactory)
+        public LoadingBalanceService(ISqlConnectionFactory<MainDBContext> mainDbConnectionFactory, ISqlConnectionFactory<WebDBConetext> webDbConnectionFactory)
         {
             this.mainDbConnectionFactory = mainDbConnectionFactory;
             this.webDbConnectionFactory = webDbConnectionFactory;

+ 3 - 2
EVCB_OCPP.WSServer/Service/MainDbService.cs

@@ -1,5 +1,6 @@
 using Dapper;
 using EVCB_OCPP.Domain;
+using EVCB_OCPP.Domain.ConnectionFactory;
 using EVCB_OCPP.Domain.Models.MainDb;
 using EVCB_OCPP.WSServer.Helper;
 using Microsoft.Data.SqlClient;
@@ -47,7 +48,7 @@ public class MainDbService : IMainDbService
 {
     public MainDbService(
         IDbContextFactory<MainDBContext> contextFactory,
-        SqlConnectionFactory<MainDBContext> sqlConnectionFactory,
+        ISqlConnectionFactory<MainDBContext> sqlConnectionFactory,
         IMemoryCache memoryCache,
         IConfiguration configuration,
         ILoggerFactory loggerFactory,
@@ -74,7 +75,7 @@ public class MainDbService : IMainDbService
     //private const string ChargeBoxConnectorIdMemCacheKeyFromat = "Connector_{0}{1}";
 
     private readonly IDbContextFactory<MainDBContext> contextFactory;
-    private readonly SqlConnectionFactory<MainDBContext> sqlConnectionFactory;
+    private readonly ISqlConnectionFactory<MainDBContext> sqlConnectionFactory;
     private readonly IMemoryCache memoryCache;
     private readonly ILoggerFactory loggerFactory;
     private readonly ILogger<MainDbService> logger;

+ 3 - 2
EVCB_OCPP.WSServer/Service/MeterValueDbService.cs

@@ -1,5 +1,6 @@
 using Dapper;
 using EVCB_OCPP.Domain;
+using EVCB_OCPP.Domain.ConnectionFactory;
 using EVCB_OCPP.WSServer.Dto;
 using EVCB_OCPP.WSServer.Helper;
 using Microsoft.Data.SqlClient;
@@ -16,7 +17,7 @@ namespace EVCB_OCPP.WSServer.Service;
 public class MeterValueDbService
 {
     private readonly IDbContextFactory<MeterValueDBContext> meterValueDbContextFactory;
-    private readonly SqlConnectionFactory<MeterValueDBContext> sqlConnectionFactory;
+    private readonly ISqlConnectionFactory<MeterValueDBContext> sqlConnectionFactory;
     private readonly ILoggerFactory loggerFactory;
     private readonly MeterValueGroupSingleHandler meterValueGroupSingleHandler;
     private readonly QueueSemaphore insertSemaphore;
@@ -26,7 +27,7 @@ public class MeterValueDbService
 
     public MeterValueDbService(
         IDbContextFactory<MeterValueDBContext> meterValueDbContextFactory,
-        SqlConnectionFactory<MeterValueDBContext> sqlConnectionFactory,
+        ISqlConnectionFactory<MeterValueDBContext> sqlConnectionFactory,
         ILogger<MeterValueDbService> logger,
         ILoggerFactory loggerFactory,
         IConfiguration configuration

+ 3 - 2
EVCB_OCPP.WSServer/Service/MeterValueInsertHandler.cs

@@ -1,5 +1,6 @@
 using Dapper;
 using EVCB_OCPP.Domain;
+using EVCB_OCPP.Domain.ConnectionFactory;
 using EVCB_OCPP.WSServer.Helper;
 using Microsoft.Data.SqlClient;
 using Microsoft.EntityFrameworkCore;
@@ -25,14 +26,14 @@ public class MeterValueInsertHandler : IHandler<InsertMeterValueParam>
     private static Queue<string> _existTables = new();
     private readonly IDbContextFactory<MeterValueDBContext> meterValueDbContextFactory;
     private readonly ILogger<MeterValueInsertHandler> logger;
-    private readonly SqlConnectionFactory<MeterValueDBContext> sqlConnectionFactory;
+    private readonly ISqlConnectionFactory<MeterValueDBContext> sqlConnectionFactory;
 
     //private readonly string meterValueConnectionString;
 
     public MeterValueInsertHandler(
         IDbContextFactory<MeterValueDBContext> meterValueDbContextFactory,
         ILogger<MeterValueInsertHandler> logger,
-        SqlConnectionFactory<MeterValueDBContext> sqlConnectionFactory
+        ISqlConnectionFactory<MeterValueDBContext> sqlConnectionFactory
         //IConfiguration configuration
         )
     {

+ 3 - 2
EVCB_OCPP.WSServer/Service/WebDbService.cs

@@ -1,4 +1,5 @@
 using Dapper;
+using EVCB_OCPP.Domain.ConnectionFactory;
 using EVCB_OCPP.WSServer.Helper;
 using Microsoft.Data.SqlClient;
 using Microsoft.Extensions.Configuration;
@@ -12,9 +13,9 @@ namespace EVCB_OCPP.WSServer.Service;
 
 public class WebDbService
 {
-    private readonly SqlConnectionFactory<WebDBConetext> webDbConnectionFactory;
+    private readonly ISqlConnectionFactory<WebDBConetext> webDbConnectionFactory;
 
-    public WebDbService(SqlConnectionFactory<WebDBConetext> webDbConnectionFactory)
+    public WebDbService(ISqlConnectionFactory<WebDBConetext> webDbConnectionFactory)
     {
         this.webDbConnectionFactory = webDbConnectionFactory;
         //this.webConnectionString = configuration.GetConnectionString("WebDBContext");

+ 2 - 2
TestTool.RemoteTriggerAPP/MainWindow.xaml.cs

@@ -1123,7 +1123,7 @@ namespace TestTool.RemoteTriggerAPP
                 //將machine的軟體更新更新到這個值
                 db.SaveChanges();
 
-                machine.FwAssignedVersion = obj.Id;
+                machine.FW_AssignedVersion = obj.Id;
 
                 db.SaveChanges();
 
@@ -1146,7 +1146,7 @@ namespace TestTool.RemoteTriggerAPP
             {
 
                 var machine = db.Machine.Where(x => x.ChargeBoxId == uxChargeBoxIdTb.Text).FirstOrDefault();
-                machine.FwAssignedVersion = null;
+                machine.FW_AssignedVersion = null;
                 db.SaveChanges();
             }