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