gpt4 book ai didi

c# - ServiceStack.OrmLite 中的 ntext

转载 作者:太空狗 更新时间:2023-10-29 19:39:38 24 4
gpt4 key购买 nike

我如何首先在 ServiceStack.OrmLite 代码中使用 nText 数据类型?

public class Email
{
[AutoIncrement]
public long ID { get; set; }


public DateTime Date { get; set; }

public string From { get; set; }

public string Subject { get; set; }

nText =>
public string Body { get; set; }

}

如果我使用字符串数据类型,ormlite 在数据库中生成 nVarchar(8000)

我需要超过8000个字符的数据

最佳答案

您需要将 Body 类型从 string 转换为 byte[],以便 ServiceStack.OrmLite 使用 varchar(max ) 列类型。类似下面的内容:

public byte[] Body { get; set; }

原因在于 ServiceStack.OrmLite 代码。

在文件中ServiceStack.OrmLite/OrmLiteDialectProviderBase.cs ,在方法InitColumnTypeMap()下是:

DbTypeMap.Set<byte[]>(DbType.Binary, BlobColumnDefinition);

在文件中ServiceStack.OrmLite.SqlServer/SqlServerOrmLiteDialectProvider.cs ,在方法SqlServerOrmLiteDialectProvider()下是:

base.BlobColumnDefinition = "VARBINARY(MAX)";

从这段代码中,您可以看到正在发生从 C# 类型到内部 ServiceStack.OrmLite 类型然后返回到 SqlServer 类型的内部映射。

这道题解释了如何在字符串和字节数组之间来回转换,How do I get a consistent byte representation of strings in C# without manually specifying an encoding? .

关于c# - ServiceStack.OrmLite 中的 ntext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11281726/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com