lx
2025-07-02 3472cc3c29841c6ede8a0a51b9a78b2bcd7a3c42
create
已修改1个文件
已添加42个文件
已删除7个文件
已重命名1个文件
2529 ■■■■ 文件已修改
ErrorAnalysis.Repository/COFarResultRepository.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/COFarWOLRepository.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/COModelRepository.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/CONearResultRepository.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/CONearWOLRepository.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/COWOLRepository.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/CCOCASIRTable.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/COFarCASIRTable.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/COFarResultTable.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/COFarSICARTable.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/COFarWOLTable.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/COLongResultTable.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/COModelTable.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/CONearCASIRTable.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/CONearResultTable.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/CONearSICARTable.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/CONearWOLTable.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/COSICARTable.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/COWOLTable.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/GasfarResultTable.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/GaslongResultTable.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/GasmodelTable.cs 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/GasnearResultTable.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/Gasrcaptable.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/Gasrintable.cs 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/RetMcnpDbContext.cs 975 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/SigfarResultTable.cs 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/SiglongResultTable.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/SigmodelTable.cs 43 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/SignearResultTable.cs 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/Entity/Sigwoltable.cs 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/ErrorAnalysis.Repository.csproj 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/RepositoryBase.cs 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Service/COMergeCalcService.cs 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Service/ErrorAnalysis.Service.csproj 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Service/ErrorRatioCalc.cs 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Service/Model/ErrorRatioModel.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Service/PDEVCalcService.cs 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.UI/ErrorAnalysis.UI.csproj 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.UI/Form1.Designer.cs 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.UI/Form1.cs 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.UI/Form1.resx 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.UI/Program.cs 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.sln 22 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis/App.config 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis/ErrorAnalysis.csproj 74 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis/Program.cs 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis/Properties/AssemblyInfo.cs 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis/Properties/Resources.Designer.cs 71 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis/Properties/Settings.Designer.cs 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis/Properties/Settings.settings 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ErrorAnalysis.Repository/COFarResultRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
using ErrorAnalysis.Repository.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ErrorAnalysis.Repository
{
    public class COFarResultRepository : RepositoryBase
    {
        public COFarResultRepository(string connectionString) : base(connectionString) { }
        public COFarResultTable GetCOFarResult(string modelId, int porosity, int sw)
        {
            using (var context = new RetMcnpDbContext(_connectionString))
            {
                var result = context.COFarResultTables.FirstOrDefault(x => x.ModelID == modelId && x.Porosity == porosity && x.Sw == sw);
                return result;
            }
        }
    }
}
ErrorAnalysis.Repository/COFarWOLRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
using ErrorAnalysis.Repository.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ErrorAnalysis.Repository
{
    public class COFarWOLRepository : RepositoryBase
    {
        public COFarWOLRepository(string connectionString) : base(connectionString) { }
        public COFarWOLTable GetCOFarWOL(string modelId, int sw)
        {
            using (var context = new RetMcnpDbContext(_connectionString))
            {
                var result = context.COFarWOLTables.FirstOrDefault(x => x.ModelID == modelId && x.Sw == sw);
                return result;
            }
        }
    }
}
ErrorAnalysis.Repository/COModelRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
using ErrorAnalysis.Repository.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ErrorAnalysis.Repository
{
    public class COModelRepository : RepositoryBase
    {
        public COModelRepository(string connectionString) : base(connectionString) { }
        public List<COModelTable> GetCOModels()
        {
            using (var context = new RetMcnpDbContext(_connectionString))
            {
                return context.COModelTables.ToList().OrderBy(c => c.BIT).OrderBy(c => c.CasingOD).ToList();
            }
        }
    }
}
ErrorAnalysis.Repository/CONearResultRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
using ErrorAnalysis.Repository.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ErrorAnalysis.Repository
{
    public class CONearResultRepository : RepositoryBase
    {
        public CONearResultRepository(string connectionString) : base(connectionString) { }
        public CONearResultTable GetCONearResult(string modelId, int porosity, int sw)
        {
            using (var context = new RetMcnpDbContext(_connectionString))
            {
                var result = context.CONearResultTables.FirstOrDefault(x => x.ModelID == modelId && x.Porosity == porosity && x.Sw == sw);
                return result;
            }
        }
    }
}
ErrorAnalysis.Repository/CONearWOLRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
using ErrorAnalysis.Repository.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ErrorAnalysis.Repository
{
    public class CONearWOLRepository : RepositoryBase
    {
        public CONearWOLRepository(string connectionString) : base(connectionString) { }
        public CONearWOLTable GetCONearWOL(string modelId, int sw)
        {
            using (var context = new RetMcnpDbContext(_connectionString))
            {
                var result = context.CONearWOLTables.FirstOrDefault(x => x.ModelID == modelId && x.Sw == sw);
                return result;
            }
        }
    }
}
ErrorAnalysis.Repository/COWOLRepository.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
using ErrorAnalysis.Repository.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ErrorAnalysis.Repository
{
    public class COWOLRepository : RepositoryBase
    {
        public COWOLRepository(string connectionString) : base(connectionString) { }
        public COWOLTable GetWOL(string modelId, int sw)
        {
            using (var context = new RetMcnpDbContext(_connectionString))
            {
                var result = context.COWOLTables.FirstOrDefault(x => x.ModelID == modelId && x.Sw == sw);
                return result;
            }
        }
    }
}
ErrorAnalysis.Repository/Entity/CCOCASIRTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class CCOCASIRTable
{
    public string COCASIRID { get; set; } = null!;
    public string ModelID { get; set; } = null!;
    public int? Sw { get; set; }
    public double? WLPu0 { get; set; }
    public double? WLPu5 { get; set; }
    public double? WLPu10 { get; set; }
    public double? WLPu15 { get; set; }
    public double? WLPu20 { get; set; }
    public double? WLPu25 { get; set; }
    public double? WLPu30 { get; set; }
    public double? WLPu35 { get; set; }
    public double? WLPu40 { get; set; }
}
ErrorAnalysis.Repository/Entity/COFarCASIRTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class COFarCASIRTable
{
    public string COCASIRID { get; set; } = null!;
    public string ModelID { get; set; } = null!;
    public int? Sw { get; set; }
    public double? WLPu0 { get; set; }
    public double? WLPu5 { get; set; }
    public double? WLPu10 { get; set; }
    public double? WLPu15 { get; set; }
    public double? WLPu20 { get; set; }
    public double? WLPu25 { get; set; }
    public double? WLPu30 { get; set; }
    public double? WLPu35 { get; set; }
    public double? WLPu40 { get; set; }
}
ErrorAnalysis.Repository/Entity/COFarResultTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class COFarResultTable
{
    public string ID { get; set; } = null!;
    public string ModelID { get; set; } = null!;
    public int Porosity { get; set; }
    public int? Sw { get; set; }
    public string? InelasticSpec { get; set; }
    public string? Capture1Spec { get; set; }
    public string? Capture2Spec { get; set; }
    public string? TimeSpec { get; set; }
    public string? CInelasticSpec { get; set; }
    public string? CCapture1Spec { get; set; }
    public string? CCapture2Spec { get; set; }
}
ErrorAnalysis.Repository/Entity/COFarSICARTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class COFarSICARTable
{
    public string COSICARID { get; set; } = null!;
    public string ModelID { get; set; } = null!;
    public int? Sw { get; set; }
    public double? WLPu0 { get; set; }
    public double? WLPu5 { get; set; }
    public double? WLPu10 { get; set; }
    public double? WLPu15 { get; set; }
    public double? WLPu20 { get; set; }
    public double? WLPu25 { get; set; }
    public double? WLPu30 { get; set; }
    public double? WLPu35 { get; set; }
    public double? WLPu40 { get; set; }
}
ErrorAnalysis.Repository/Entity/COFarWOLTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class COFarWOLTable
{
    public string COWOLID { get; set; } = null!;
    public string ModelID { get; set; } = null!;
    public int? Sw { get; set; }
    public double? WLPu0 { get; set; }
    public double? WLPu5 { get; set; }
    public double? WLPu10 { get; set; }
    public double? WLPu15 { get; set; }
    public double? WLPu20 { get; set; }
    public double? WLPu25 { get; set; }
    public double? WLPu30 { get; set; }
    public double? WLPu35 { get; set; }
    public double? WLPu40 { get; set; }
    public double? A0 { get; set; }
    public double? A1 { get; set; }
    public double? A2 { get; set; }
}
ErrorAnalysis.Repository/Entity/COLongResultTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class COLongResultTable
{
    public string? ID { get; set; }
    public string? ModelID { get; set; }
    public int? Porosity { get; set; }
    public int? Sw { get; set; }
    public string? InelasticSpec { get; set; }
    public string? Capture1Spec { get; set; }
    public decimal? Capture2Spec { get; set; }
    public string? TimeSpec { get; set; }
    public string? CInelasticSpec { get; set; }
    public string? CCapture1Spec { get; set; }
    public string? CCapture2Spec { get; set; }
}
ErrorAnalysis.Repository/Entity/COModelTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class COModelTable
{
    public string ModelID { get; set; } = null!;
    public decimal BIT { get; set; }
    public decimal CasingOD { get; set; }
    public decimal CasingID { get; set; }
    public decimal? ScreenOD { get; set; }
    public string? ScreenID { get; set; }
    public string TubeOD { get; set; } = null!;
    public decimal TubeID { get; set; }
    public string Lithology { get; set; } = null!;
    public string? VSH { get; set; }
    public decimal? OilDensity { get; set; }
    public string? BHSalinity { get; set; }
    public string? ReservoirSalinity { get; set; }
    public string? TubeFluid { get; set; }
    public string? ScreenFluid { get; set; }
    public string? CasingFluid { get; set; }
    public string? CementBond { get; set; }
    public string? GravelFillPercent { get; set; }
}
ErrorAnalysis.Repository/Entity/CONearCASIRTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class CONearCASIRTable
{
    public string COCASIRID { get; set; } = null!;
    public string ModelID { get; set; } = null!;
    public int? Sw { get; set; }
    public double? WLPu0 { get; set; }
    public double? WLPu5 { get; set; }
    public double? WLPu10 { get; set; }
    public double? WLPu15 { get; set; }
    public double? WLPu20 { get; set; }
    public double? WLPu25 { get; set; }
    public double? WLPu30 { get; set; }
    public double? WLPu35 { get; set; }
    public double? WLPu40 { get; set; }
}
ErrorAnalysis.Repository/Entity/CONearResultTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class CONearResultTable
{
    public string ID { get; set; } = null!;
    public string ModelID { get; set; } = null!;
    public int Porosity { get; set; }
    public int? Sw { get; set; }
    public string? InelasticSpec { get; set; }
    public string? Capture1Spec { get; set; }
    public string? Capture2Spec { get; set; }
    public string? TimeSpec { get; set; }
    public string? CInelasticSpec { get; set; }
    public string? CCapture1Spec { get; set; }
    public string? CCapture2Spec { get; set; }
}
ErrorAnalysis.Repository/Entity/CONearSICARTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class CONearSICARTable
{
    public string COSICARID { get; set; } = null!;
    public string ModelID { get; set; } = null!;
    public int? Sw { get; set; }
    public double? WLPu0 { get; set; }
    public double? WLPu5 { get; set; }
    public double? WLPu10 { get; set; }
    public double? WLPu15 { get; set; }
    public double? WLPu20 { get; set; }
    public double? WLPu25 { get; set; }
    public double? WLPu30 { get; set; }
    public double? WLPu35 { get; set; }
    public double? WLPu40 { get; set; }
}
ErrorAnalysis.Repository/Entity/CONearWOLTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class CONearWOLTable
{
    public string COWOLID { get; set; } = null!;
    public string ModelID { get; set; } = null!;
    public int? Sw { get; set; }
    public double? WLPu0 { get; set; }
    public double? WLPu5 { get; set; }
    public double? WLPu10 { get; set; }
    public double? WLPu15 { get; set; }
    public double? WLPu20 { get; set; }
    public double? WLPu25 { get; set; }
    public double? WLPu30 { get; set; }
    public double? WLPu35 { get; set; }
    public double? WLPu40 { get; set; }
    public double? A0 { get; set; }
    public double? A1 { get; set; }
    public double? A2 { get; set; }
}
ErrorAnalysis.Repository/Entity/COSICARTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class COSICARTable
{
    public string COSICARID { get; set; } = null!;
    public string ModelID { get; set; } = null!;
    public int? Sw { get; set; }
    public double? WLPu0 { get; set; }
    public double? WLPu5 { get; set; }
    public double? WLPu10 { get; set; }
    public double? WLPu15 { get; set; }
    public double? WLPu20 { get; set; }
    public double? WLPu25 { get; set; }
    public double? WLPu30 { get; set; }
    public double? WLPu35 { get; set; }
    public double? WLPu40 { get; set; }
}
ErrorAnalysis.Repository/Entity/COWOLTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class COWOLTable
{
    public string COSICARID { get; set; } = null!;
    public string ModelID { get; set; } = null!;
    public int? Sw { get; set; }
    public double? WLPu0 { get; set; }
    public double? WLPu5 { get; set; }
    public double? WLPu10 { get; set; }
    public double? WLPu15 { get; set; }
    public double? WLPu20 { get; set; }
    public double? WLPu25 { get; set; }
    public double? WLPu30 { get; set; }
    public double? WLPu35 { get; set; }
    public double? WLPu40 { get; set; }
    public double? A0 { get; set; }
    public double? A1 { get; set; }
    public double? A2 { get; set; }
}
ErrorAnalysis.Repository/Entity/GasfarResultTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class GasfarResultTable
{
    public string? Id { get; set; }
    public string? ModelId { get; set; }
    public int? Porosity { get; set; }
    public int? Sw { get; set; }
    public string? InelasticSpec { get; set; }
    public string? Capture1Spec { get; set; }
    public string? Capture2Spec { get; set; }
    public string? TimeSpec { get; set; }
    public string? CinelasticSpec { get; set; }
    public string? Ccapture1Spec { get; set; }
    public string? Ccapture2Spec { get; set; }
}
ErrorAnalysis.Repository/Entity/GaslongResultTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class GaslongResultTable
{
    public string? Id { get; set; }
    public string? ModelId { get; set; }
    public int? Porosity { get; set; }
    public int? Sw { get; set; }
    public string? InelasticSpec { get; set; }
    public string? Capture1Spec { get; set; }
    public string? Capture2Spec { get; set; }
    public string? TimeSpec { get; set; }
    public string? CinelasticSpec { get; set; }
    public string? Ccapture1Spec { get; set; }
    public string? Ccapture2Spec { get; set; }
}
ErrorAnalysis.Repository/Entity/GasmodelTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class GasmodelTable
{
    public string? ModelId { get; set; }
    public string? Bit { get; set; }
    public string? CasingDiameter { get; set; }
    public string? ScreenPipeDiameter { get; set; }
    public string? TubeDiameter { get; set; }
    public string? Lithology { get; set; }
    public string? Vsh { get; set; }
    public string? OilDensity { get; set; }
    public string? Bhsalinity { get; set; }
    public string? ReservoirSalinity { get; set; }
    public string? TubeOilHoldUp { get; set; }
    public string? AnnulusOilHoldUp { get; set; }
    public string? CementBond { get; set; }
    public string? GravelFill { get; set; }
}
ErrorAnalysis.Repository/Entity/GasnearResultTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class GasnearResultTable
{
    public string? Id { get; set; }
    public string? ModelId { get; set; }
    public int? Porosity { get; set; }
    public int? Sw { get; set; }
    public string? InelasticSpec { get; set; }
    public string? Capture1Spec { get; set; }
    public string? Capture2Spec { get; set; }
    public string? TimeSpec { get; set; }
    public string? CinelasticSpec { get; set; }
    public string? Ccapture1Spec { get; set; }
    public string? Ccapture2Spec { get; set; }
}
ErrorAnalysis.Repository/Entity/Gasrcaptable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class Gasrcaptable
{
    public string? Gasrcapid { get; set; }
    public string? ModelId { get; set; }
    public int? Sw { get; set; }
    public double? Wlpu0 { get; set; }
    public double? Wlpu5 { get; set; }
    public double? Wlpu10 { get; set; }
    public double? Wlpu15 { get; set; }
    public double? Wlpu20 { get; set; }
    public double? Wlpu25 { get; set; }
    public double? Wlpu30 { get; set; }
    public double? Wlpu35 { get; set; }
    public double? Wlpu40 { get; set; }
}
ErrorAnalysis.Repository/Entity/Gasrintable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class Gasrintable
{
    public string? Gasrinid { get; set; }
    public string? ModelId { get; set; }
    public int? Sw { get; set; }
    public double? Wlpu0 { get; set; }
    public double? Wlpu5 { get; set; }
    public double? Wlpu10 { get; set; }
    public double? Wlpu15 { get; set; }
    public double? Wlpu20 { get; set; }
    public double? Wlpu25 { get; set; }
    public double? Wlpu30 { get; set; }
    public double? Wlpu35 { get; set; }
    public double? Wlpu40 { get; set; }
}
ErrorAnalysis.Repository/Entity/RetMcnpDbContext.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,975 @@
using System;
using System.Collections.Generic;
using Microsoft.EntityFrameworkCore;
namespace ErrorAnalysis.Repository.Entity;
public partial class RetMcnpDbContext : DbContext
{
    public readonly string _connectionString;
    public RetMcnpDbContext()
    {
    }
    public RetMcnpDbContext(DbContextOptions<RetMcnpDbContext> options)
        : base(options)
    {
    }
    public RetMcnpDbContext(string connectionString) : base()
    {
        _connectionString = connectionString;
    }
    public virtual DbSet<CCOCASIRTable> CCOCASIRTables { get; set; }
    public virtual DbSet<COFarCASIRTable> COFarCASIRTables { get; set; }
    public virtual DbSet<COFarResultTable> COFarResultTables { get; set; }
    public virtual DbSet<COFarSICARTable> COFarSICARTables { get; set; }
    public virtual DbSet<COFarWOLTable> COFarWOLTables { get; set; }
    public virtual DbSet<COLongResultTable> COLongResultTables { get; set; }
    public virtual DbSet<COModelTable> COModelTables { get; set; }
    public virtual DbSet<CONearCASIRTable> CONearCASIRTables { get; set; }
    public virtual DbSet<CONearResultTable> CONearResultTables { get; set; }
    public virtual DbSet<CONearSICARTable> CONearSICARTables { get; set; }
    public virtual DbSet<CONearWOLTable> CONearWOLTables { get; set; }
    public virtual DbSet<COSICARTable> COSICARTables { get; set; }
    public virtual DbSet<COWOLTable> COWOLTables { get; set; }
    public virtual DbSet<GasfarResultTable> GasfarResultTables { get; set; }
    public virtual DbSet<GaslongResultTable> GaslongResultTables { get; set; }
    public virtual DbSet<GasmodelTable> GasmodelTables { get; set; }
    public virtual DbSet<GasnearResultTable> GasnearResultTables { get; set; }
    public virtual DbSet<Gasrcaptable> Gasrcaptables { get; set; }
    public virtual DbSet<Gasrintable> Gasrintables { get; set; }
    public virtual DbSet<SigfarResultTable> SigfarResultTables { get; set; }
    public virtual DbSet<SiglongResultTable> SiglongResultTables { get; set; }
    public virtual DbSet<SigmodelTable> SigmodelTables { get; set; }
    public virtual DbSet<SignearResultTable> SignearResultTables { get; set; }
    public virtual DbSet<Sigwoltable> Sigwoltables { get; set; }
    protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) => optionsBuilder.UseSqlite(_connectionString);
    //"Data Source=D:\\Pro\\cosl\\ErrorRate\\RetMcnpDB.db"
    protected override void OnModelCreating(ModelBuilder modelBuilder)
    {
        modelBuilder.Entity<CCOCASIRTable>(entity =>
        {
            entity.HasKey(e => e.COCASIRID);
            entity.ToTable("COCASIRTable");
            entity.Property(e => e.COCASIRID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("COCASIRID");
            entity.Property(e => e.ModelID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.WLPu0)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu0");
            entity.Property(e => e.WLPu10)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu10");
            entity.Property(e => e.WLPu15)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu15");
            entity.Property(e => e.WLPu20)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu20");
            entity.Property(e => e.WLPu25)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu25");
            entity.Property(e => e.WLPu30)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu30");
            entity.Property(e => e.WLPu35)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu35");
            entity.Property(e => e.WLPu40)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu40");
            entity.Property(e => e.WLPu5)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu5");
        });
        modelBuilder.Entity<COFarCASIRTable>(entity =>
        {
            entity.HasKey(e => e.COCASIRID);
            entity.ToTable("COFarCASIRTable");
            entity.Property(e => e.COCASIRID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("COCASIRID");
            entity.Property(e => e.ModelID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.WLPu0)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu0");
            entity.Property(e => e.WLPu10)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu10");
            entity.Property(e => e.WLPu15)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu15");
            entity.Property(e => e.WLPu20)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu20");
            entity.Property(e => e.WLPu25)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu25");
            entity.Property(e => e.WLPu30)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu30");
            entity.Property(e => e.WLPu35)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu35");
            entity.Property(e => e.WLPu40)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu40");
            entity.Property(e => e.WLPu5)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu5");
        });
        modelBuilder.Entity<COFarResultTable>(entity =>
        {
            entity.ToTable("COFarResultTable");
            entity.Property(e => e.ID)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ID");
            entity.Property(e => e.Capture1Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.Capture2Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.CCapture1Spec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CCapture1Spec");
            entity.Property(e => e.CCapture2Spec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CCapture2Spec");
            entity.Property(e => e.CInelasticSpec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CInelasticSpec");
            entity.Property(e => e.InelasticSpec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.ModelID)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Porosity).HasColumnType("INT");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.TimeSpec).HasColumnType("NVARCHAR(500)");
        });
        modelBuilder.Entity<COFarSICARTable>(entity =>
        {
            entity.HasKey(e => e.COSICARID);
            entity.ToTable("COFarSICARTable");
            entity.Property(e => e.COSICARID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("COSICARID");
            entity.Property(e => e.ModelID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.WLPu0)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu0");
            entity.Property(e => e.WLPu10)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu10");
            entity.Property(e => e.WLPu15)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu15");
            entity.Property(e => e.WLPu20)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu20");
            entity.Property(e => e.WLPu25)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu25");
            entity.Property(e => e.WLPu30)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu30");
            entity.Property(e => e.WLPu35)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu35");
            entity.Property(e => e.WLPu40)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu40");
            entity.Property(e => e.WLPu5)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu5");
        });
        modelBuilder.Entity<COFarWOLTable>(entity =>
        {
            entity.HasKey(e => e.COWOLID);
            entity.ToTable("COFarWOLTable");
            entity.Property(e => e.COWOLID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("COWOLID");
            entity.Property(e => e.A0)
                .HasColumnType("DOUBLE")
                .HasColumnName("a0");
            entity.Property(e => e.A1)
                .HasColumnType("DOUBLE")
                .HasColumnName("a1");
            entity.Property(e => e.A2)
                .HasColumnType("DOUBLE")
                .HasColumnName("a2");
            entity.Property(e => e.ModelID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.WLPu0)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu0");
            entity.Property(e => e.WLPu10)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu10");
            entity.Property(e => e.WLPu15)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu15");
            entity.Property(e => e.WLPu20)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu20");
            entity.Property(e => e.WLPu25)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu25");
            entity.Property(e => e.WLPu30)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu30");
            entity.Property(e => e.WLPu35)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu35");
            entity.Property(e => e.WLPu40)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu40");
            entity.Property(e => e.WLPu5)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu5");
        });
        modelBuilder.Entity<COLongResultTable>(entity =>
        {
            entity
                .HasNoKey()
                .ToTable("COLongResultTable");
            entity.Property(e => e.Capture1Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.Capture2Spec).HasColumnType("NUMERIC(4000)");
            entity.Property(e => e.CCapture1Spec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CCapture1Spec");
            entity.Property(e => e.CCapture2Spec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CCapture2Spec");
            entity.Property(e => e.CInelasticSpec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CInelasticSpec");
            entity.Property(e => e.ID)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ID");
            entity.Property(e => e.InelasticSpec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.ModelID)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Porosity).HasColumnType("INT");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.TimeSpec).HasColumnType("NVARCHAR(500)");
        });
        modelBuilder.Entity<COModelTable>(entity =>
        {
            entity.HasKey(e => e.ModelID);
            entity.ToTable("COModelTable");
            entity.Property(e => e.ModelID)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.BHSalinity)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("BHSalinity");
            entity.Property(e => e.BIT)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("BIT");
            entity.Property(e => e.CasingFluid).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.CasingID)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("CasingID");
            entity.Property(e => e.CasingOD)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("CasingOD");
            entity.Property(e => e.CementBond).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.GravelFillPercent).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.Lithology).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.OilDensity).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.ReservoirSalinity).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.ScreenFluid).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.ScreenID)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("ScreenID");
            entity.Property(e => e.ScreenOD)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("ScreenOD");
            entity.Property(e => e.TubeFluid).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.TubeID)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("TubeID");
            entity.Property(e => e.TubeOD)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("TubeOD");
            entity.Property(e => e.VSH)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("VSH");
        });
        modelBuilder.Entity<CONearCASIRTable>(entity =>
        {
            entity.HasKey(e => e.COCASIRID);
            entity.ToTable("CONearCASIRTable");
            entity.Property(e => e.COCASIRID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("COCASIRID");
            entity.Property(e => e.ModelID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.WLPu0)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu0");
            entity.Property(e => e.WLPu10)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu10");
            entity.Property(e => e.WLPu15)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu15");
            entity.Property(e => e.WLPu20)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu20");
            entity.Property(e => e.WLPu25)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu25");
            entity.Property(e => e.WLPu30)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu30");
            entity.Property(e => e.WLPu35)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu35");
            entity.Property(e => e.WLPu40)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu40");
            entity.Property(e => e.WLPu5)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu5");
        });
        modelBuilder.Entity<CONearResultTable>(entity =>
        {
            entity.ToTable("CONearResultTable");
            entity.Property(e => e.ID)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ID");
            entity.Property(e => e.Capture1Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.Capture2Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.CCapture1Spec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CCapture1Spec");
            entity.Property(e => e.CCapture2Spec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CCapture2Spec");
            entity.Property(e => e.CInelasticSpec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CInelasticSpec");
            entity.Property(e => e.InelasticSpec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.ModelID)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Porosity).HasColumnType("INT");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.TimeSpec).HasColumnType("NVARCHAR(500)");
        });
        modelBuilder.Entity<CONearSICARTable>(entity =>
        {
            entity.HasKey(e => e.COSICARID);
            entity.ToTable("CONearSICARTable");
            entity.Property(e => e.COSICARID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("COSICARID");
            entity.Property(e => e.ModelID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.WLPu0)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu0");
            entity.Property(e => e.WLPu10)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu10");
            entity.Property(e => e.WLPu15)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu15");
            entity.Property(e => e.WLPu20)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu20");
            entity.Property(e => e.WLPu25)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu25");
            entity.Property(e => e.WLPu30)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu30");
            entity.Property(e => e.WLPu35)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu35");
            entity.Property(e => e.WLPu40)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu40");
            entity.Property(e => e.WLPu5)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu5");
        });
        modelBuilder.Entity<CONearWOLTable>(entity =>
        {
            entity.HasKey(e => e.COWOLID);
            entity.ToTable("CONearWOLTable");
            entity.Property(e => e.COWOLID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("COWOLID");
            entity.Property(e => e.A0)
                .HasColumnType("DOUBLE")
                .HasColumnName("a0");
            entity.Property(e => e.A1)
                .HasColumnType("DOUBLE")
                .HasColumnName("a1");
            entity.Property(e => e.A2)
                .HasColumnType("DOUBLE")
                .HasColumnName("a2");
            entity.Property(e => e.ModelID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.WLPu0)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu0");
            entity.Property(e => e.WLPu10)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu10");
            entity.Property(e => e.WLPu15)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu15");
            entity.Property(e => e.WLPu20)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu20");
            entity.Property(e => e.WLPu25)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu25");
            entity.Property(e => e.WLPu30)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu30");
            entity.Property(e => e.WLPu35)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu35");
            entity.Property(e => e.WLPu40)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu40");
            entity.Property(e => e.WLPu5)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu5");
        });
        modelBuilder.Entity<COSICARTable>(entity =>
        {
            entity.HasKey(e => e.COSICARID);
            entity.ToTable("COSICARTable");
            entity.Property(e => e.COSICARID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("COSICARID");
            entity.Property(e => e.ModelID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.WLPu0)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu0");
            entity.Property(e => e.WLPu10)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu10");
            entity.Property(e => e.WLPu15)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu15");
            entity.Property(e => e.WLPu20)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu20");
            entity.Property(e => e.WLPu25)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu25");
            entity.Property(e => e.WLPu30)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu30");
            entity.Property(e => e.WLPu35)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu35");
            entity.Property(e => e.WLPu40)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu40");
            entity.Property(e => e.WLPu5)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu5");
        });
        modelBuilder.Entity<COWOLTable>(entity =>
        {
            entity.HasKey(e => e.COSICARID);
            entity.ToTable("COWOLTable");
            entity.Property(e => e.COSICARID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("COWOLID");
            entity.Property(e => e.A0)
                .HasColumnType("DOUBLE")
                .HasColumnName("a0");
            entity.Property(e => e.A1)
                .HasColumnType("DOUBLE")
                .HasColumnName("a1");
            entity.Property(e => e.A2)
                .HasColumnType("DOUBLE")
                .HasColumnName("a2");
            entity.Property(e => e.ModelID)
                .HasColumnType("nvarchar(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.WLPu0)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu0");
            entity.Property(e => e.WLPu10)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu10");
            entity.Property(e => e.WLPu15)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu15");
            entity.Property(e => e.WLPu20)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu20");
            entity.Property(e => e.WLPu25)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu25");
            entity.Property(e => e.WLPu30)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu30");
            entity.Property(e => e.WLPu35)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu35");
            entity.Property(e => e.WLPu40)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu40");
            entity.Property(e => e.WLPu5)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu5");
        });
        modelBuilder.Entity<GasfarResultTable>(entity =>
        {
            entity
                .HasNoKey()
                .ToTable("GASFarResultTable");
            entity.Property(e => e.Capture1Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.Capture2Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.Ccapture1Spec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CCapture1Spec");
            entity.Property(e => e.Ccapture2Spec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CCapture2Spec");
            entity.Property(e => e.CinelasticSpec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CInelasticSpec");
            entity.Property(e => e.Id)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ID");
            entity.Property(e => e.InelasticSpec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.ModelId)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Porosity).HasColumnType("INT");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.TimeSpec).HasColumnType("NVARCHAR(500)");
        });
        modelBuilder.Entity<GaslongResultTable>(entity =>
        {
            entity
                .HasNoKey()
                .ToTable("GASLongResultTable");
            entity.Property(e => e.Capture1Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.Capture2Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.Ccapture1Spec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CCapture1Spec");
            entity.Property(e => e.Ccapture2Spec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CCapture2Spec");
            entity.Property(e => e.CinelasticSpec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CInelasticSpec");
            entity.Property(e => e.Id)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ID");
            entity.Property(e => e.InelasticSpec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.ModelId)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Porosity).HasColumnType("INT");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.TimeSpec).HasColumnType("NVARCHAR(500)");
        });
        modelBuilder.Entity<GasmodelTable>(entity =>
        {
            entity
                .HasNoKey()
                .ToTable("GASModelTable");
            entity.Property(e => e.AnnulusOilHoldUp).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.Bhsalinity)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("BHSalinity");
            entity.Property(e => e.Bit)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("BIT");
            entity.Property(e => e.CasingDiameter).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.CementBond).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.GravelFill).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.Lithology).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.ModelId)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.OilDensity).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.ReservoirSalinity).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.ScreenPipeDiameter).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.TubeDiameter).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.TubeOilHoldUp).HasColumnType("NVARCHAR");
            entity.Property(e => e.Vsh)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("VSH");
        });
        modelBuilder.Entity<GasnearResultTable>(entity =>
        {
            entity
                .HasNoKey()
                .ToTable("GASNearResultTable");
            entity.Property(e => e.Capture1Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.Capture2Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.Ccapture1Spec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CCapture1Spec");
            entity.Property(e => e.Ccapture2Spec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CCapture2Spec");
            entity.Property(e => e.CinelasticSpec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CInelasticSpec");
            entity.Property(e => e.Id)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ID");
            entity.Property(e => e.InelasticSpec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.ModelId)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Porosity).HasColumnType("INT");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.TimeSpec).HasColumnType("NVARCHAR(500)");
        });
        modelBuilder.Entity<Gasrcaptable>(entity =>
        {
            entity
                .HasNoKey()
                .ToTable("GASRCAPTable");
            entity.Property(e => e.Gasrcapid)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("GASRCAPID");
            entity.Property(e => e.ModelId)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.Wlpu0)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu0");
            entity.Property(e => e.Wlpu10)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu10");
            entity.Property(e => e.Wlpu15)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu15");
            entity.Property(e => e.Wlpu20)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu20");
            entity.Property(e => e.Wlpu25)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu25");
            entity.Property(e => e.Wlpu30)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu30");
            entity.Property(e => e.Wlpu35)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu35");
            entity.Property(e => e.Wlpu40)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu40");
            entity.Property(e => e.Wlpu5)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu5");
        });
        modelBuilder.Entity<Gasrintable>(entity =>
        {
            entity
                .HasNoKey()
                .ToTable("GASRINTable");
            entity.Property(e => e.Gasrinid)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("GASRINID");
            entity.Property(e => e.ModelId)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.Wlpu0)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu0");
            entity.Property(e => e.Wlpu10)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu10");
            entity.Property(e => e.Wlpu15)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu15");
            entity.Property(e => e.Wlpu20)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu20");
            entity.Property(e => e.Wlpu25)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu25");
            entity.Property(e => e.Wlpu30)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu30");
            entity.Property(e => e.Wlpu35)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu35");
            entity.Property(e => e.Wlpu40)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu40");
            entity.Property(e => e.Wlpu5)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu5");
        });
        modelBuilder.Entity<SigfarResultTable>(entity =>
        {
            entity.ToTable("SIGFarResultTable");
            entity.Property(e => e.Id)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ID");
            entity.Property(e => e.Capture1Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.Capture2Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.Ccapture1Spec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CCapture1Spec");
            entity.Property(e => e.Ccapture2Spec)
                .HasColumnType("NVARCHAR(4000)")
                .HasColumnName("CCapture2Spec");
            entity.Property(e => e.CinelasticSpec)
                .HasColumnType("NUMERIC(4000)")
                .HasColumnName("CInelasticSpec");
            entity.Property(e => e.InelasticSpec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.ModelId)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Porosity).HasColumnType("INT");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.TimeSpec).HasColumnType("NVARCHAR(500)");
        });
        modelBuilder.Entity<SiglongResultTable>(entity =>
        {
            entity.ToTable("SIGLongResultTable");
            entity.Property(e => e.Id)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ID");
            entity.Property(e => e.Capture1Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.Capture2Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.InelasticSpec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.ModelId)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Porosity).HasColumnType("INT");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.TimeSpec).HasColumnType("NVARCHAR(500)");
        });
        modelBuilder.Entity<SigmodelTable>(entity =>
        {
            entity.HasKey(e => e.ModelId);
            entity.ToTable("SIGModelTable");
            entity.Property(e => e.ModelId)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Bhsalinity)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("BHSalinity");
            entity.Property(e => e.Bit)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("BIT");
            entity.Property(e => e.CasingFluid).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.CasingId)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("CasingID");
            entity.Property(e => e.CasingOd)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("CasingOD");
            entity.Property(e => e.CementBond).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.GravelFillPercent).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.Lithology).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.OilDensity).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.ReservoirSalinity).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.ScreenFluid).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.ScreenId)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("ScreenID");
            entity.Property(e => e.ScreenOd)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("ScreenOD");
            entity.Property(e => e.TubeFluid).HasColumnType("NVARCHAR(50)");
            entity.Property(e => e.TubeId)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("TubeID");
            entity.Property(e => e.TubeOd)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("TubeOD");
            entity.Property(e => e.Vsh)
                .HasColumnType("NVARCHAR(50)")
                .HasColumnName("VSH");
        });
        modelBuilder.Entity<SignearResultTable>(entity =>
        {
            entity.ToTable("SIGNearResultTable");
            entity.Property(e => e.Id)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ID");
            entity.Property(e => e.Capture1Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.Capture2Spec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.InelasticSpec).HasColumnType("NVARCHAR(4000)");
            entity.Property(e => e.ModelId)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Porosity).HasColumnType("INT");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.TimeSpec).HasColumnType("NVARCHAR(500)");
        });
        modelBuilder.Entity<Sigwoltable>(entity =>
        {
            entity.HasKey(e => e.Cowolid);
            entity.ToTable("SIGWOLTable");
            entity.Property(e => e.Cowolid)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("COWOLID");
            entity.Property(e => e.A0)
                .HasColumnType("DOUBLE")
                .HasColumnName("a0");
            entity.Property(e => e.A1)
                .HasColumnType("DOUBLE")
                .HasColumnName("a1");
            entity.Property(e => e.A2)
                .HasColumnType("DOUBLE")
                .HasColumnName("a2");
            entity.Property(e => e.ModelId)
                .HasColumnType("NVARCHAR(200)")
                .HasColumnName("ModelID");
            entity.Property(e => e.Sw).HasColumnType("INT");
            entity.Property(e => e.Wlpu0)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu0");
            entity.Property(e => e.Wlpu10)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu10");
            entity.Property(e => e.Wlpu15)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu15");
            entity.Property(e => e.Wlpu20)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu20");
            entity.Property(e => e.Wlpu25)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu25");
            entity.Property(e => e.Wlpu30)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu30");
            entity.Property(e => e.Wlpu35)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu35");
            entity.Property(e => e.Wlpu40)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu40");
            entity.Property(e => e.Wlpu5)
                .HasColumnType("DOUBLE")
                .HasColumnName("WLPu5");
        });
        OnModelCreatingPartial(modelBuilder);
    }
    partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
}
ErrorAnalysis.Repository/Entity/SigfarResultTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,29 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class SigfarResultTable
{
    public string Id { get; set; } = null!;
    public string ModelId { get; set; } = null!;
    public int Porosity { get; set; }
    public int? Sw { get; set; }
    public string? InelasticSpec { get; set; }
    public string? Capture1Spec { get; set; }
    public string? Capture2Spec { get; set; }
    public string? TimeSpec { get; set; }
    public decimal? CinelasticSpec { get; set; }
    public string? Ccapture1Spec { get; set; }
    public string? Ccapture2Spec { get; set; }
}
ErrorAnalysis.Repository/Entity/SiglongResultTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class SiglongResultTable
{
    public string Id { get; set; } = null!;
    public string ModelId { get; set; } = null!;
    public int Porosity { get; set; }
    public int? Sw { get; set; }
    public string? InelasticSpec { get; set; }
    public string? Capture1Spec { get; set; }
    public string? Capture2Spec { get; set; }
    public string? TimeSpec { get; set; }
}
ErrorAnalysis.Repository/Entity/SigmodelTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,43 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class SigmodelTable
{
    public string ModelId { get; set; } = null!;
    public string Bit { get; set; } = null!;
    public string CasingOd { get; set; } = null!;
    public string CasingId { get; set; } = null!;
    public string? ScreenOd { get; set; }
    public string? ScreenId { get; set; }
    public string TubeOd { get; set; } = null!;
    public string TubeId { get; set; } = null!;
    public string Lithology { get; set; } = null!;
    public string? Vsh { get; set; }
    public string? OilDensity { get; set; }
    public string? Bhsalinity { get; set; }
    public string? ReservoirSalinity { get; set; }
    public string? TubeFluid { get; set; }
    public string? ScreenFluid { get; set; }
    public string? CasingFluid { get; set; }
    public string? CementBond { get; set; }
    public string? GravelFillPercent { get; set; }
}
ErrorAnalysis.Repository/Entity/SignearResultTable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class SignearResultTable
{
    public string Id { get; set; } = null!;
    public string ModelId { get; set; } = null!;
    public int Porosity { get; set; }
    public int? Sw { get; set; }
    public string? InelasticSpec { get; set; }
    public string? Capture1Spec { get; set; }
    public string? Capture2Spec { get; set; }
    public string? TimeSpec { get; set; }
}
ErrorAnalysis.Repository/Entity/Sigwoltable.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
using System;
using System.Collections.Generic;
namespace ErrorAnalysis.Repository.Entity;
public partial class Sigwoltable
{
    public string Cowolid { get; set; } = null!;
    public string ModelId { get; set; } = null!;
    public int? Sw { get; set; }
    public double? Wlpu0 { get; set; }
    public double? Wlpu5 { get; set; }
    public double? Wlpu10 { get; set; }
    public double? Wlpu15 { get; set; }
    public double? Wlpu20 { get; set; }
    public double? Wlpu25 { get; set; }
    public double? Wlpu30 { get; set; }
    public double? Wlpu35 { get; set; }
    public double? Wlpu40 { get; set; }
    public double? A0 { get; set; }
    public double? A1 { get; set; }
    public double? A2 { get; set; }
}
ErrorAnalysis.Repository/ErrorAnalysis.Repository.csproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.EntityFrameworkCore" Version="9.0.6" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="9.0.6">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
    <PackageReference Include="Microsoft.EntityFrameworkCore.Sqlite" Version="9.0.6" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="9.0.6">
      <PrivateAssets>all</PrivateAssets>
      <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
    </PackageReference>
  </ItemGroup>
</Project>
ErrorAnalysis.Repository/RepositoryBase.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ErrorAnalysis.Repository
{
    public class RepositoryBase
    {
        public readonly string _connectionString;
        public RepositoryBase(string connectionString) => _connectionString = connectionString;
    }
}
ErrorAnalysis.Service/COMergeCalcService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,86 @@
using ErrorAnalysis.Repository;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ErrorAnalysis.Service
{
    public class COMergeCalcService
    {
        const double _gg = (9.0 - 0.0) / 255.0;//0.03529
        const double _offset = 0.0;
        const int _cWinStartIndex = (int)(3.3 / _gg + _offset); //C窗口index
        const int _cWinEndIndex = (int)(4.78 / _gg + _offset); // width= 4.78-3.3  = 1.48
        const int _oWinStartIndex = (int)(4.88 / _gg + _offset); // org
        const int _oWinEndIndex = (int)(6.36 / _gg + _offset); // width = 6.36-4.88=1.48
        public static double GetFarMergeCResult(string connectionString, string modelId, int porosity)
        {
            var repository = new COFarResultRepository(connectionString);
            var cResult = repository.GetCOFarResult(modelId, porosity, 0);
            if (cResult == null)
                throw new InvalidDataException("COFarResult not found");
            var cArr = cResult.InelasticSpec?.Split(',').Select(v => Convert.ToDouble(v)).ToArray();
            if (cArr == null)
                throw new InvalidDataException("COFarResult InelasticSpec is null");
            var length = _cWinEndIndex - _cWinStartIndex + 1;
            var result = cArr.Skip(_cWinStartIndex).Take(length).Sum();
            return result;
        }
        public static double GetFarMergeOResult(string connectionString, string modelId, int porosity)
        {
            var repository = new COFarResultRepository(connectionString);
            var cResult = repository.GetCOFarResult(modelId, porosity, 100);
            if (cResult == null)
                throw new InvalidDataException("COFarResult not found");
            var cArr = cResult.InelasticSpec?.Split(',').Select(v => Convert.ToDouble(v)).ToArray();
            if (cArr == null)
                throw new InvalidDataException("COFarResult InelasticSpec is null");
            var length = _oWinEndIndex - _oWinStartIndex + 1;
            var result = cArr.Skip(_oWinStartIndex).Take(length).Sum();
            return result;
        }
        public static double GetNearMergeCResult(string connectionString, string modelId, int porosity)
        {
            var repository = new CONearResultRepository(connectionString);
            var cResult = repository.GetCONearResult(modelId, porosity, 0);
            if (cResult == null)
                throw new InvalidDataException("CONearResult not found");
            var cArr = cResult.InelasticSpec?.Split(',').Select(v => Convert.ToDouble(v)).ToArray();
            if (cArr == null)
                throw new InvalidDataException("CONearResult InelasticSpec is null");
            var length = _cWinEndIndex - _cWinStartIndex + 1;
            var result = cArr.Skip(_cWinStartIndex).Take(length).Sum();
            return result;
        }
        public static double GetNearMergeOResult(string connectionString, string modelId, int porosity)
        {
            var repository = new CONearResultRepository(connectionString);
            var cResult = repository.GetCONearResult(modelId, porosity, 100);
            if (cResult == null)
                throw new InvalidDataException("CONearResult not found");
            var cArr = cResult.InelasticSpec?.Split(',').Select(v => Convert.ToDouble(v)).ToArray();
            if (cArr == null)
                throw new InvalidDataException("CONearResult InelasticSpec is null");
            var length = _oWinEndIndex - _oWinStartIndex + 1;
            var result = cArr.Skip(_oWinStartIndex).Take(length).Sum();
            return result;
        }
    }
}
ErrorAnalysis.Service/ErrorAnalysis.Service.csproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="..\ErrorAnalysis.Repository\ErrorAnalysis.Repository.csproj" />
  </ItemGroup>
</Project>
ErrorAnalysis.Service/ErrorRatioCalc.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
using ErrorAnalysis.Repository;
using ErrorAnalysis.Service.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ErrorAnalysis.Service
{
    public class ErrorRatioCalc
    {
        public static ErrorRatioResult GetErrorRatioResult() { return new ErrorRatioResult(); }
        private static ErrorRatio GetErrorRatio(string connectionString, string modelID, int porosity)
        {
            var coWOLRepository = new COWOLRepository(connectionString);
            var cWolRes = coWOLRepository.GetWOL(modelID, 0);
            var oWolRes = coWOLRepository.GetWOL(modelID, 100);
            return new ErrorRatio { };
        }
    }
}
ErrorAnalysis.Service/Model/ErrorRatioModel.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
using ErrorAnalysis.Repository.Entity;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ErrorAnalysis.Service.Model
{
    public class ErrorRatioResult
    {
        public COModelTable? COModel { get; set; }
        public List<ErrorRatio>? ErrorRatios { get; set; }
    }
    public class ErrorRatio
    {
        public int Porosity { get; set; }
        public int Pass { get; set; }
        public double ErrorRatioValue { get; set; }
    }
}
ErrorAnalysis.Service/PDEVCalcService.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ErrorAnalysis.Service
{
    public class PDEVCalcService
    {
        public static double GetMergePDEV(string connectionString, string modelId, int porosity)
        {
            var farC = COMergeCalcService.GetFarMergeCResult(connectionString, modelId, porosity);
            var farO = COMergeCalcService.GetFarMergeOResult(connectionString, modelId, porosity);
            var farPDEV = CalcPDEV(farC, farO);
            var nearC = COMergeCalcService.GetNearMergeCResult(connectionString, modelId, porosity);
            var nearO = COMergeCalcService.GetNearMergeOResult(connectionString, modelId, porosity);
            var nearPDEV = CalcPDEV(nearC, nearO);
            return nearPDEV * 0.65 + farPDEV * 0.35;
        }
        private static double CalcPDEV(double c, double o) => Math.Sqrt(Math.Pow(c / o, 2) * (1 / c + 1 / o));
    }
}
ErrorAnalysis.UI/ErrorAnalysis.UI.csproj
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>WinExe</OutputType>
    <TargetFramework>net8.0-windows</TargetFramework>
    <Nullable>enable</Nullable>
    <UseWindowsForms>true</UseWindowsForms>
    <ImplicitUsings>enable</ImplicitUsings>
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="..\ErrorAnalysis.Repository\ErrorAnalysis.Repository.csproj" />
    <ProjectReference Include="..\ErrorAnalysis.Service\ErrorAnalysis.Service.csproj" />
  </ItemGroup>
</Project>
ErrorAnalysis.UI/Form1.Designer.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
namespace ErrorAnalysis.UI
{
    partial class Form1
    {
        /// <summary>
        ///  Required designer variable.
        /// </summary>
        private System.ComponentModel.IContainer components = null;
        /// <summary>
        ///  Clean up any resources being used.
        /// </summary>
        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
        protected override void Dispose(bool disposing)
        {
            if (disposing && (components != null))
            {
                components.Dispose();
            }
            base.Dispose(disposing);
        }
        #region Windows Form Designer generated code
        /// <summary>
        ///  Required method for Designer support - do not modify
        ///  the contents of this method with the code editor.
        /// </summary>
        private void InitializeComponent()
        {
            btnGetAllPipe = new Button();
            SuspendLayout();
            //
            // btnGetAllPipe
            //
            btnGetAllPipe.Location = new Point(642, 344);
            btnGetAllPipe.Name = "btnGetAllPipe";
            btnGetAllPipe.Size = new Size(75, 23);
            btnGetAllPipe.TabIndex = 0;
            btnGetAllPipe.Text = "button1";
            btnGetAllPipe.UseVisualStyleBackColor = true;
            btnGetAllPipe.Click += btnGetAllPipe_Click;
            //
            // Form1
            //
            AutoScaleDimensions = new SizeF(7F, 17F);
            AutoScaleMode = AutoScaleMode.Font;
            ClientSize = new Size(800, 450);
            Controls.Add(btnGetAllPipe);
            Name = "Form1";
            Text = "Form1";
            ResumeLayout(false);
        }
        #endregion
        private Button btnGetAllPipe;
    }
}
ErrorAnalysis.UI/Form1.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
using ErrorAnalysis.Repository;
namespace ErrorAnalysis.UI
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        private void btnGetAllPipe_Click(object sender, EventArgs e)
        {
            var connectionString = "Data Source=D:\\Pro\\cosl\\ErrorRate\\RetMcnpDB.db";
            var modelRepository = new COModelRepository(connectionString);
            var models = modelRepository.GetCOModels();
        }
    }
}
ErrorAnalysis.UI/Form1.resx
ÎļþÃû´Ó ErrorAnalysis/Properties/Resources.resx ÐÞ¸Ä
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
  <!--
  <!--
    Microsoft ResX Schema 
    Version 2.0
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    The primary goals of this format is to allow a simple XML format
    that is mostly human readable. The generation and parsing of the
    various data types are done through the TypeConverter classes
    associated with the data types.
    Example:
    ... ado.net/XML headers & schema ...
    <resheader name="resmimetype">text/microsoft-resx</resheader>
    <resheader name="version">2.0</resheader>
@@ -26,40 +26,41 @@
        <value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
        <comment>This is a comment</comment>
    </data>
    There are any number of "resheader" rows that contain simple
    There are any number of "resheader" rows that contain simple
    name/value pairs.
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    Each data row contains a name, and value. The row also contains a
    type or mimetype. Type corresponds to a .NET class that support
    text/value conversion through the TypeConverter architecture.
    Classes that don't support this are serialized and stored with the
    mimetype set.
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    The mimetype is used for serialized objects, and tells the
    ResXResourceReader how to depersist the object. This is currently not
    extensible. For a given mimetype the value must be set accordingly:
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    Note - application/x-microsoft.net.object.binary.base64 is the format
    that the ResXResourceWriter will generate, however the reader can
    read any of the formats listed below.
    mimetype: application/x-microsoft.net.object.binary.base64
    value   : The object must be serialized with
            : System.Serialization.Formatters.Binary.BinaryFormatter
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
            : and then encoded with base64 encoding.
    
    mimetype: application/x-microsoft.net.object.soap.base64
    value   : The object must be serialized with
    value   : The object must be serialized with
            : System.Runtime.Serialization.Formatters.Soap.SoapFormatter
            : and then encoded with base64 encoding.
    mimetype: application/x-microsoft.net.object.bytearray.base64
    value   : The object must be serialized into a byte array
    value   : The object must be serialized into a byte array
            : using a System.ComponentModel.TypeConverter
            : and then encoded with base64 encoding.
    -->
  <xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
    <xsd:element name="root" msdata:IsDataSet="true">
      <xsd:complexType>
        <xsd:choice maxOccurs="unbounded">
@@ -68,9 +69,10 @@
              <xsd:sequence>
                <xsd:element name="value" type="xsd:string" minOccurs="0" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" />
              <xsd:attribute name="name" use="required" type="xsd:string" />
              <xsd:attribute name="type" type="xsd:string" />
              <xsd:attribute name="mimetype" type="xsd:string" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="assembly">
@@ -85,9 +87,10 @@
                <xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
                <xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
              </xsd:sequence>
              <xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
              <xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
              <xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
              <xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
              <xsd:attribute ref="xml:space" />
            </xsd:complexType>
          </xsd:element>
          <xsd:element name="resheader">
@@ -109,9 +112,9 @@
    <value>2.0</value>
  </resheader>
  <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
</root>
ErrorAnalysis.UI/Program.cs
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
namespace ErrorAnalysis.UI
{
    internal static class Program
    {
        /// <summary>
        ///  The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            // To customize application configuration such as set high DPI settings or default font,
            // see https://aka.ms/applicationconfiguration.
            ApplicationConfiguration.Initialize();
            Application.Run(new Form1());
        }
    }
}
ErrorAnalysis.sln
@@ -3,7 +3,11 @@
# Visual Studio Version 17
VisualStudioVersion = 17.10.35027.167
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ErrorAnalysis", "ErrorAnalysis\ErrorAnalysis.csproj", "{843570BC-C1C7-4CBB-895E-D45D968BFF26}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ErrorAnalysis.UI", "ErrorAnalysis.UI\ErrorAnalysis.UI.csproj", "{D3AA890E-A643-49CE-A8BF-C0C3EDF7EBDD}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ErrorAnalysis.Repository", "ErrorAnalysis.Repository\ErrorAnalysis.Repository.csproj", "{CE9FBF0C-2B9F-4503-B009-B5A5BB30D2DE}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ErrorAnalysis.Service", "ErrorAnalysis.Service\ErrorAnalysis.Service.csproj", "{51D61B80-C544-45D8-8C8A-44C1E8C7413A}"
EndProject
Global
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
@@ -11,10 +15,18 @@
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {843570BC-C1C7-4CBB-895E-D45D968BFF26}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {843570BC-C1C7-4CBB-895E-D45D968BFF26}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {843570BC-C1C7-4CBB-895E-D45D968BFF26}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {843570BC-C1C7-4CBB-895E-D45D968BFF26}.Release|Any CPU.Build.0 = Release|Any CPU
        {D3AA890E-A643-49CE-A8BF-C0C3EDF7EBDD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {D3AA890E-A643-49CE-A8BF-C0C3EDF7EBDD}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {D3AA890E-A643-49CE-A8BF-C0C3EDF7EBDD}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {D3AA890E-A643-49CE-A8BF-C0C3EDF7EBDD}.Release|Any CPU.Build.0 = Release|Any CPU
        {CE9FBF0C-2B9F-4503-B009-B5A5BB30D2DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {CE9FBF0C-2B9F-4503-B009-B5A5BB30D2DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {CE9FBF0C-2B9F-4503-B009-B5A5BB30D2DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {CE9FBF0C-2B9F-4503-B009-B5A5BB30D2DE}.Release|Any CPU.Build.0 = Release|Any CPU
        {51D61B80-C544-45D8-8C8A-44C1E8C7413A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {51D61B80-C544-45D8-8C8A-44C1E8C7413A}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {51D61B80-C544-45D8-8C8A-44C1E8C7413A}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {51D61B80-C544-45D8-8C8A-44C1E8C7413A}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
ErrorAnalysis/App.config
ÎļþÒÑɾ³ý
ErrorAnalysis/ErrorAnalysis.csproj
ÎļþÒÑɾ³ý
ErrorAnalysis/Program.cs
ÎļþÒÑɾ³ý
ErrorAnalysis/Properties/AssemblyInfo.cs
ÎļþÒÑɾ³ý
ErrorAnalysis/Properties/Resources.Designer.cs
ÎļþÒÑɾ³ý
ErrorAnalysis/Properties/Settings.Designer.cs
ÎļþÒÑɾ³ý
ErrorAnalysis/Properties/Settings.settings
ÎļþÒÑɾ³ý