diff --git a/FreeSql.DbContext/FreeSql.DbContext.xml b/FreeSql.DbContext/FreeSql.DbContext.xml
index ddd18378..28fdb213 100644
--- a/FreeSql.DbContext/FreeSql.DbContext.xml
+++ b/FreeSql.DbContext/FreeSql.DbContext.xml
@@ -110,13 +110,6 @@
清空状态数据
-
-
- 根据 lambda 条件删除数据
-
-
-
-
添加
@@ -211,15 +204,6 @@
-
-
- 批量注入 Repository,可以参考代码自行调整
-
-
-
-
-
-
动态Type,在使用 Repository<object> 后使用本方法,指定实体类型
diff --git a/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs b/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs
index 68b9de63..baf47d01 100644
--- a/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs
+++ b/FreeSql.Tests/FreeSql.Tests/Oracle/OracleCodeFirstTest.cs
@@ -11,6 +11,51 @@ namespace FreeSql.Tests.Oracle
{
public class OracleCodeFirstTest
{
+ [Fact]
+ public void NClob_StringLength_1()
+ {
+ var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "й"));
+
+ var item1 = new TS_NCLB02 { Data = str1 };
+ Assert.Equal(1, g.oracle.Insert(item1).ExecuteAffrows());
+
+ var item2 = g.oracle.Select().Where(a => a.Id == item1.Id).First();
+ Assert.Equal(str1, item2.Data);
+
+ //NoneParameter
+ item1 = new TS_NCLB02 { Data = str1 };
+ Assert.Throws(() => g.oracle.Insert(item1).NoneParameter().ExecuteAffrows());
+ //Oracle.ManagedDataAccess.Client.OracleException:ORA-01704: ַ̫
+ }
+ class TS_NCLB02
+ {
+ public Guid Id { get; set; }
+ [Column(StringLength = - 1)]
+ public string Data { get; set; }
+ }
+
+ [Fact]
+ public void NClob()
+ {
+ var str1 = string.Join(",", Enumerable.Range(0, 10000).Select(a => "й"));
+
+ var item1 = new TS_NCLB01 { Data = str1 };
+ Assert.Equal(1, g.oracle.Insert(item1).ExecuteAffrows());
+
+ var item2 = g.oracle.Select().Where(a => a.Id == item1.Id).First();
+ Assert.Equal(str1, item2.Data);
+
+ //NoneParameter
+ item1 = new TS_NCLB01 { Data = str1 };
+ Assert.Throws(() => g.oracle.Insert(item1).NoneParameter().ExecuteAffrows());
+ //Oracle.ManagedDataAccess.Client.OracleException:ORA-01704: ַ̫
+ }
+ class TS_NCLB01
+ {
+ public Guid Id { get; set; }
+ [Column(DbType = "nclob")]
+ public string Data { get; set; }
+ }
[Fact]
public void Clob()
{
diff --git a/FreeSql/Internal/UtilsExpressionTree.cs b/FreeSql/Internal/UtilsExpressionTree.cs
index efdb4a8a..c77baea9 100644
--- a/FreeSql/Internal/UtilsExpressionTree.cs
+++ b/FreeSql/Internal/UtilsExpressionTree.cs
@@ -223,6 +223,9 @@ namespace FreeSql.Internal
else colattr.DbType = Regex.Replace(colattr.DbType, charPatten, $"$1({strlen})");
break;
case DataType.Oracle:
+ if (strlen < 0) colattr.DbType = "NCLOB"; //v1.3.2+ https://github.com/dotnetcore/FreeSql/issues/259
+ else colattr.DbType = Regex.Replace(colattr.DbType, charPatten, $"$1({strlen})");
+ break;
case DataType.OdbcOracle:
case DataType.OdbcDameng:
if (strlen < 0) colattr.DbType = Regex.Replace(colattr.DbType, charPatten, $"$1(4000)");