gpt4 book ai didi

c# - 使用 Entity Framework 6 代码优先注释映射 xmltype oracle

转载 作者:太空宇宙 更新时间:2023-11-03 12:36:38 25 4
gpt4 key购买 nike

我先尝试使用 xmltype 列的代码


在我的数据库中:

TIPOS_GRIFOS

ID_TIPOS_GRIFOS : NUMBER(38,0)

DESC_TIPOS_GRIFOS:VARCHAR2(250 字节)

配置:XML类型


在我的代码中:

[Table("TIPOS_GRIFOS")]
public class TiposGrifos : BaseEntity
{
[Column("ID_TIPOS_GRIFOS"), Key]
public int IdTiposGrifos { get; set;}

[Column("DESC_TIPOS_GRIFOS")]
public string DescTiposGrifos
{ get; set; }

[Column("CONFIG")]
public string Config
{ get; set; }

[NotMapped]
public XElement xmlData
{
get { return XElement.Parse(Config); }
set { Config = value.ToString(); }
}}

我可以执行:

   var tiposGrifo = repository.GetById(1);
tiposGrifo.xmlData = template;

而且这个对象很好,从数据库中正确导入了数据。但是当我尝试 context.SaveChanges () 时,它抛出 ORA-932 异常。

谢谢。

PD:我试过

   [Column(TypeName="xml")]
public string Config { get; set; }

那没有用。


更新

我发现了问题:

尝试将长度等于或大于 2,000 个字符的字符串绑定(bind)到 XMLType 列或参数时,将遇到“ORA-00932:不一致的数据类型:预期 - 获得 NCLOB”错误。 [错误 12630958]

我试过插入一个小的 xml(少于 2000 个字符),我的代码运行良好。但是我需要能够插入更大的 xml...有什么解决方案吗?

最佳答案

更新:

这是 Oracle 数据提供商的已知问题。因此您必须等待他们解决此问题。

  1. An "ORA-00932 : inconsistent datatypes" error can be encountered if a string of 2,000 or more characters, or a byte array with 4,000 bytes or more in length, is bound in a WHERE clause of a LINQ/ESQL query. The same error can be encountered if an entity property that maps to a BLOB, CLOB, NCLOB, LONG, LONG RAW, XMLTYPE column is used in a WHERE clause of a LINQ/ESQL query.

您可以在 Entity Framework Tips, Limitations, and Known Issues 下阅读相关信息本文档的部分。

原帖:

您可以使用 Fluent API 进行尝试,如下所示。

public String Config { get; set; }

public XElement xmlData
{
get { return XElement.Parse(Config); }
set { Config = value.ToString(); }
}

public partial class XmlEntityMap : EntityTypeConfiguration<XmlEntity>
{
public FilterMap()
{
this.Property(c => c.Config).HasColumnType("xml");
this.Ignore(c => c.xmlData);
}
}

关于c# - 使用 Entity Framework 6 代码优先注释映射 xmltype oracle,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40716074/

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