diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index d198eb6c..ab4c3bf2 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -130,6 +130,13 @@
清空状态数据
+
+
+ 根据 lambda 条件删除数据
+
+
+
+
添加
diff --git a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs
index 3be75126..e269e7e0 100644
--- a/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests.Provider.Odbc/MySql/MySqlCodeFirstTest.cs
@@ -10,6 +10,85 @@ namespace FreeSql.Tests.Odbc.MySql
{
public class MySqlCodeFirstTest
{
+ [Fact]
+ public void EnumStartValue1()
+ {
+ var fsql = g.mysql;
+ fsql.Delete().Where("1=1").ExecuteAffrows();
+
+ var repo = fsql.GetRepository();
+ var item1 = repo.Insert(new TS_ESV1 { Status = TS_TSV1_Status.Status1 });
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status1, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status1, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status1, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status1, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ Assert.Equal($"UPDATE `TS_ESV1` SET `Status` = 'Status1' WHERE (`Id` = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status, TS_TSV1_Status.Status1).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE `TS_ESV1` SET `Status` = 'Status2' WHERE (`Id` = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status, TS_TSV1_Status.Status2).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE `TS_ESV1` SET `Status` = 'Status3' WHERE (`Id` = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status, TS_TSV1_Status.Status3).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE `TS_ESV1` SET `Status` = 'Status1' WHERE (`Id` = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status == TS_TSV1_Status.Status1).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE `TS_ESV1` SET `Status` = 'Status2' WHERE (`Id` = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status == TS_TSV1_Status.Status2).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE `TS_ESV1` SET `Status` = 'Status3' WHERE (`Id` = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status == TS_TSV1_Status.Status3).ToSql().Replace("\r\n", ""));
+
+ item1.Status = TS_TSV1_Status.Status1;
+ repo.Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status1, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status1, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status1, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status1, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ item1.Status = TS_TSV1_Status.Status2;
+ repo.Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status2, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status2, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status2, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status2, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ item1.Status = TS_TSV1_Status.Status3;
+ repo.Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status3, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status3, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status3, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status3, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ item1.Status = TS_TSV1_Status.Status3;
+ fsql.GetRepository().Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status3, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status3, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status3, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status3, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ item1.Status = TS_TSV1_Status.Status2;
+ fsql.GetRepository().Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status2, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status2, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status2, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status2, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+ }
+ public class TS_ESV1
+ {
+ public Guid Id { get; set; }
+ public TS_TSV1_Status Status { get; set; }
+ }
+ public enum TS_TSV1_Status
+ {
+ Status1 = 1,
+ Status2 = 3,
+ Status3 = 5
+ }
+
[Fact]
public void StringLength()
{
diff --git a/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs
index e018ae54..43501614 100644
--- a/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/MySql/MySqlCodeFirstTest.cs
@@ -11,6 +11,85 @@ namespace FreeSql.Tests.MySql
{
public class MySqlCodeFirstTest
{
+ [Fact]
+ public void EnumStartValue1()
+ {
+ var fsql = g.mysql;
+ fsql.Delete().Where("1=1").ExecuteAffrows();
+
+ var repo = fsql.GetRepository();
+ var item1 = repo.Insert(new TS_ESV1 { Status = TS_TSV1_Status.Status1 });
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status1, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status1, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status1, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status1, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ Assert.Equal($"UPDATE `TS_ESV1` SET `Status` = 'Status1' WHERE (`Id` = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status, TS_TSV1_Status.Status1).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE `TS_ESV1` SET `Status` = 'Status2' WHERE (`Id` = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status, TS_TSV1_Status.Status2).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE `TS_ESV1` SET `Status` = 'Status3' WHERE (`Id` = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status, TS_TSV1_Status.Status3).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE `TS_ESV1` SET `Status` = 'Status1' WHERE (`Id` = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status == TS_TSV1_Status.Status1).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE `TS_ESV1` SET `Status` = 'Status2' WHERE (`Id` = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status == TS_TSV1_Status.Status2).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE `TS_ESV1` SET `Status` = 'Status3' WHERE (`Id` = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status == TS_TSV1_Status.Status3).ToSql().Replace("\r\n", ""));
+
+ item1.Status = TS_TSV1_Status.Status1;
+ repo.Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status1, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status1, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status1, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status1, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ item1.Status = TS_TSV1_Status.Status2;
+ repo.Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status2, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status2, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status2, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status2, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ item1.Status = TS_TSV1_Status.Status3;
+ repo.Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status3, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status3, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status3, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status3, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ item1.Status = TS_TSV1_Status.Status3;
+ fsql.GetRepository().Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status3, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status3, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status3, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status3, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ item1.Status = TS_TSV1_Status.Status2;
+ fsql.GetRepository().Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status2, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status2, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status2, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status2, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+ }
+ public class TS_ESV1
+ {
+ public Guid Id { get; set; }
+ public TS_TSV1_Status Status { get; set; }
+ }
+ public enum TS_TSV1_Status
+ {
+ Status1 = 1,
+ Status2 = 3,
+ Status3 = 5
+ }
+
[Fact]
public void DateTime_1()
{
diff --git a/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs
index 34c6c2e4..fac3b6e9 100644
--- a/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/SqlServer/SqlServerCodeFirstTest.cs
@@ -12,6 +12,85 @@ namespace FreeSql.Tests.SqlServer
{
public class SqlServerCodeFirstTest
{
+ [Fact]
+ public void EnumStartValue1()
+ {
+ var fsql = g.sqlserver;
+ fsql.Delete().Where("1=1").ExecuteAffrows();
+
+ var repo = fsql.GetRepository();
+ var item1 = repo.Insert(new TS_ESV1 { Status = TS_TSV1_Status.Status1 });
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status1, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status1, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status1, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status1, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ Assert.Equal($"UPDATE [TS_ESV1] SET [Status] = 1 WHERE ([Id] = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status, TS_TSV1_Status.Status1).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE [TS_ESV1] SET [Status] = 3 WHERE ([Id] = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status, TS_TSV1_Status.Status2).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE [TS_ESV1] SET [Status] = 5 WHERE ([Id] = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status, TS_TSV1_Status.Status3).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE [TS_ESV1] SET [Status] = 1 WHERE ([Id] = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status == TS_TSV1_Status.Status1).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE [TS_ESV1] SET [Status] = 3 WHERE ([Id] = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status == TS_TSV1_Status.Status2).ToSql().Replace("\r\n", ""));
+ Assert.Equal($"UPDATE [TS_ESV1] SET [Status] = 5 WHERE ([Id] = '{item1.Id}')", fsql.Update().Where(a => a.Id == item1.Id).NoneParameter().Set(a => a.Status == TS_TSV1_Status.Status3).ToSql().Replace("\r\n", ""));
+
+ item1.Status = TS_TSV1_Status.Status1;
+ repo.Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status1, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status1, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status1, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status1, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ item1.Status = TS_TSV1_Status.Status2;
+ repo.Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status2, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status2, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status2, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status2, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ item1.Status = TS_TSV1_Status.Status3;
+ repo.Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status3, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status3, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status3, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status3, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ item1.Status = TS_TSV1_Status.Status3;
+ fsql.GetRepository().Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status3, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status3, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status3, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status3, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+
+ item1.Status = TS_TSV1_Status.Status2;
+ fsql.GetRepository().Update(item1);
+ Assert.True(fsql.Select().Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status2, fsql.Select().Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status2, fsql.Select().Where(a => a.Id == item1.Id).First(a => a.Status));
+ Assert.True(repo.Select.Where(a => a.Id == item1.Id).Any());
+ Assert.Equal(TS_TSV1_Status.Status2, repo.Select.Where(a => a.Id == item1.Id).First().Status);
+ Assert.Equal(TS_TSV1_Status.Status2, repo.Select.Where(a => a.Id == item1.Id).First(a => a.Status));
+ }
+ public class TS_ESV1
+ {
+ public Guid Id { get; set; }
+ public TS_TSV1_Status Status { get; set; }
+ }
+ public enum TS_TSV1_Status
+ {
+ Status1 = 1,
+ Status2 = 3,
+ Status3 = 5
+ }
+
[Fact]
public void Blob()
{
diff --git a/FreeSql.Tests/FreeSql.Tests/g.cs b/FreeSql.Tests/FreeSql.Tests/g.cs
index 533be9f6..43f83258 100644
--- a/FreeSql.Tests/FreeSql.Tests/g.cs
+++ b/FreeSql.Tests/FreeSql.Tests/g.cs
@@ -42,12 +42,7 @@ public class g
static Lazy sqlserverLazy = new Lazy(() => new FreeSql.FreeSqlBuilder()
.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;Max Pool Size=3")
- //.UseConnectionFactory(FreeSql.DataType.SqlServer, () => new Microsoft.Data.SqlClient.SqlConnection("Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;"))
- //.UseConnectionFactory(FreeSql.DataType.SqlServer, () => new System.Data.SqlClient.SqlConnection("Data Source=.;Integrated Security=True;Initial Catalog=freesqlTest;Pooling=true;"))
- //.UseConnectionString(FreeSql.DataType.SqlServer, "Data Source=192.168.164.129;uid=sa;pwd=123456;Initial Catalog=ds_shop;Pooling=true;Max Pool Size=3")
- //.UseConnectionFactory(FreeSql.DataType.SqlServer, () => new System.Data.SqlClient.SqlConnection("Data Source=192.168.164.129;uid=sa;pwd=123456;Initial Catalog=ds_shop;Pooling=true;"))
.UseAutoSyncStructure(true)
- //.UseGenerateCommandParameterWithLambda(true)
.UseMonitorCommand(
cmd => Trace.WriteLine("\r\n线程" + Thread.CurrentThread.ManagedThreadId + ": " + cmd.CommandText) //监听SQL命令对象,在执行前
//, (cmd, traceLog) => Console.WriteLine(traceLog)
diff --git a/FreeSql/Extensions/FreeSqlGlobalExtensions.cs b/FreeSql/Extensions/FreeSqlGlobalExtensions.cs
index c4534b31..7925f280 100644
--- a/FreeSql/Extensions/FreeSqlGlobalExtensions.cs
+++ b/FreeSql/Extensions/FreeSqlGlobalExtensions.cs
@@ -163,7 +163,11 @@ public static partial class FreeSqlGlobalExtensions
var dict = new Dictionary(StringComparer.CurrentCultureIgnoreCase);
foreach (var prop in props)
{
- if (dict.ContainsKey(prop.Name)) continue;
+ if (dict.TryGetValue(prop.Name, out var existsProp))
+ {
+ if (existsProp.DeclaringType != prop) dict[prop.Name] = prop;
+ continue;
+ }
dict.Add(prop.Name, prop);
}
return dict;