mirror of
https://github.com/nsnail/FreeSql.git
synced 2025-04-22 18:52:50 +08:00
- 调整 Oracle StringLength/MaxLength -1 时候映射为 nclob;
This commit is contained in:
parent
7795296328
commit
558fc52cf0
@ -110,13 +110,6 @@
|
|||||||
清空状态数据
|
清空状态数据
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:FreeSql.DbSet`1.RemoveAsync(System.Linq.Expressions.Expression{System.Func{`0,System.Boolean}})">
|
|
||||||
<summary>
|
|
||||||
根据 lambda 条件删除数据
|
|
||||||
</summary>
|
|
||||||
<param name="predicate"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:FreeSql.DbSet`1.Add(`0)">
|
<member name="M:FreeSql.DbSet`1.Add(`0)">
|
||||||
<summary>
|
<summary>
|
||||||
添加
|
添加
|
||||||
@ -211,15 +204,6 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:FreeSql.FreeSqlRepositoryDependencyInjection.AddFreeRepository(Microsoft.Extensions.DependencyInjection.IServiceCollection,System.Action{FreeSql.FluentDataFilter},System.Reflection.Assembly[])">
|
|
||||||
<summary>
|
|
||||||
批量注入 Repository,可以参考代码自行调整
|
|
||||||
</summary>
|
|
||||||
<param name="services"></param>
|
|
||||||
<param name="globalDataFilter"></param>
|
|
||||||
<param name="assemblies"></param>
|
|
||||||
<returns></returns>
|
|
||||||
</member>
|
|
||||||
<member name="M:FreeSql.IBaseRepository.AsType(System.Type)">
|
<member name="M:FreeSql.IBaseRepository.AsType(System.Type)">
|
||||||
<summary>
|
<summary>
|
||||||
动态Type,在使用 Repository<object> 后使用本方法,指定实体类型
|
动态Type,在使用 Repository<object> 后使用本方法,指定实体类型
|
||||||
|
@ -11,6 +11,51 @@ namespace FreeSql.Tests.Oracle
|
|||||||
{
|
{
|
||||||
public class OracleCodeFirstTest
|
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<TS_NCLB02>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.Equal(str1, item2.Data);
|
||||||
|
|
||||||
|
//NoneParameter
|
||||||
|
item1 = new TS_NCLB02 { Data = str1 };
|
||||||
|
Assert.Throws<OracleException>(() => 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<TS_NCLB01>().Where(a => a.Id == item1.Id).First();
|
||||||
|
Assert.Equal(str1, item2.Data);
|
||||||
|
|
||||||
|
//NoneParameter
|
||||||
|
item1 = new TS_NCLB01 { Data = str1 };
|
||||||
|
Assert.Throws<OracleException>(() => 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]
|
[Fact]
|
||||||
public void Clob()
|
public void Clob()
|
||||||
{
|
{
|
||||||
|
@ -223,6 +223,9 @@ namespace FreeSql.Internal
|
|||||||
else colattr.DbType = Regex.Replace(colattr.DbType, charPatten, $"$1({strlen})");
|
else colattr.DbType = Regex.Replace(colattr.DbType, charPatten, $"$1({strlen})");
|
||||||
break;
|
break;
|
||||||
case DataType.Oracle:
|
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.OdbcOracle:
|
||||||
case DataType.OdbcDameng:
|
case DataType.OdbcDameng:
|
||||||
if (strlen < 0) colattr.DbType = Regex.Replace(colattr.DbType, charPatten, $"$1(4000)");
|
if (strlen < 0) colattr.DbType = Regex.Replace(colattr.DbType, charPatten, $"$1(4000)");
|
||||||
|
Loading…
x
Reference in New Issue
Block a user