diff --git a/Falcon.ModelSP.Test/Falcon.ModelSP.Test.csproj b/Falcon.ModelSP.Test/Falcon.ModelSP.Test.csproj new file mode 100644 index 0000000..6e27da1 --- /dev/null +++ b/Falcon.ModelSP.Test/Falcon.ModelSP.Test.csproj @@ -0,0 +1,19 @@ + + + + netcoreapp2.2 + + false + + + + + + + + + + + + + diff --git a/Falcon.ModelSP.Test/ModelSPTest.cs b/Falcon.ModelSP.Test/ModelSPTest.cs new file mode 100644 index 0000000..663f04e --- /dev/null +++ b/Falcon.ModelSP.Test/ModelSPTest.cs @@ -0,0 +1,47 @@ +using Microsoft.VisualStudio.TestTools.UnitTesting; +using Falcon.ModelSP; +using System.Linq; + +namespace Falcon.ModelSP.Test +{ + [TestClass] + public class ModelSPTest + { + [TestMethod] + public void getParamsTest() { + var model = new ParmModel { Id = 1,Name = "n1",AAAge = 10 }; + + var data = DataExtend.getParams(model); + Assert.IsNotNull(data); + Assert.IsTrue(data.Count() == typeof(ParmModel).GetProperties().Length - 1); + + Assert.IsTrue(data.Any(m => m.ParameterName == "@Id" && m.Value.Equals(1))); + Assert.IsTrue(data.Any(m => m.ParameterName == "@Name" && m.Value.Equals("n1"))); + Assert.IsTrue(data.Any(m => m.ParameterName == "@age" && m.Value.Equals(10))); + Assert.IsTrue(!data.Any(m => m.ParameterName == "@Address")); + } + + [TestMethod] + public void getProcuderNameTest() { + var model = new ParmModel { }; + Assert.IsTrue(DataExtend.getProcuderName() == "ParmModel"); + Assert.IsTrue(DataExtend.getProcuderName() == "sp123"); + } + + class ParmModel + { + public int Id { get; set; } + + public string Name { get; set; } + + [FalconSPPrarmName("age")] + public int AAAge { get; set; } + + [FalconSPIgnore] + public string Address { get; set; } + } + + [FalconSPProcuderName("sp123")] + class ParmModel1 { } + } +} diff --git a/Falcon.ModelSP/DadaContextExtend.cs b/Falcon.ModelSP/DataExtend.cs similarity index 95% rename from Falcon.ModelSP/DadaContextExtend.cs rename to Falcon.ModelSP/DataExtend.cs index c7640ba..7330b05 100644 --- a/Falcon.ModelSP/DadaContextExtend.cs +++ b/Falcon.ModelSP/DataExtend.cs @@ -42,7 +42,7 @@ namespace Falcon.ModelSP /// /// 参数模型类型 /// 参数实例 - private static IEnumerable getParams(T data) { + public static IEnumerable getParams(T data) { if(data == null) yield break; foreach(var p in typeof(T).GetProperties()) { @@ -75,7 +75,7 @@ namespace Falcon.ModelSP /// 获取存储过程名 /// /// 参数模型 - private static string getProcuderName() { + public static string getProcuderName() { var attr = typeof(T).GetCustomAttribute(true); if(attr != null && attr is FalconSPProcuderNameAttribute pna && !string.IsNullOrEmpty(pna.ProcuderName)) { return pna.ProcuderName; diff --git a/FalconCore.sln b/FalconCore.sln index 59f55c5..66a9450 100644 --- a/FalconCore.sln +++ b/FalconCore.sln @@ -15,9 +15,11 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Falcon.Packget.Test", "Falc EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Falcon.ModelSP", "Falcon.ModelSP\Falcon.ModelSP.csproj", "{D31D628F-60F5-4F98-8280-2D312B0A99F1}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Falcon.AutoTableLog", "Falcon.AutoTableLog\Falcon.AutoTableLog.csproj", "{61C50690-4419-4F6D-B34D-4258565185E9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Falcon.AutoTableLog", "Falcon.AutoTableLog\Falcon.AutoTableLog.csproj", "{61C50690-4419-4F6D-B34D-4258565185E9}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Falcon.AutoTableLog.Test", "Falcon.AutoTableLog.Test\Falcon.AutoTableLog.Test.csproj", "{D60683D5-D6F6-41EE-9627-43C34C977C45}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Falcon.AutoTableLog.Test", "Falcon.AutoTableLog.Test\Falcon.AutoTableLog.Test.csproj", "{D60683D5-D6F6-41EE-9627-43C34C977C45}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Falcon.ModelSP.Test", "Falcon.ModelSP.Test\Falcon.ModelSP.Test.csproj", "{C05DEBF9-79ED-4BA9-B8D5-CAF6F8EB4A87}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -57,6 +59,10 @@ Global {D60683D5-D6F6-41EE-9627-43C34C977C45}.Debug|Any CPU.Build.0 = Debug|Any CPU {D60683D5-D6F6-41EE-9627-43C34C977C45}.Release|Any CPU.ActiveCfg = Release|Any CPU {D60683D5-D6F6-41EE-9627-43C34C977C45}.Release|Any CPU.Build.0 = Release|Any CPU + {C05DEBF9-79ED-4BA9-B8D5-CAF6F8EB4A87}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {C05DEBF9-79ED-4BA9-B8D5-CAF6F8EB4A87}.Debug|Any CPU.Build.0 = Debug|Any CPU + {C05DEBF9-79ED-4BA9-B8D5-CAF6F8EB4A87}.Release|Any CPU.ActiveCfg = Release|Any CPU + {C05DEBF9-79ED-4BA9-B8D5-CAF6F8EB4A87}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE