gpt4 book ai didi

entity-framework - Entity Framework - 映射小数(13,0)问题

转载 作者:行者123 更新时间:2023-12-04 21:27:03 24 4
gpt4 key购买 nike

我正在将我公司的应用程序(现在在 SQL Server 和 Oracle 上运行)迁移到 ASP NET MVC 和 Entity Framework 以实现持久性。

创建基于 SQL Server 数据库的实体模型 e 单独我为 Oracle 创建了一个 SSDL(对于 Oracle,我使用 DevArt dotConnect for Oracle Provider)并且我遇到了一些痛苦的麻烦。

我的表主键在 SQL Server 上的类型为 decimal(13,0),在 Oracle 上为 number(13,0) 但 Oracle 将它的类型映射到 Int64,将 SQL Server 映射到十进制,但我需要 SQL Server 将它映射到 Int64 .

我在实体数据模型上手动进行了这些修改,对于创建记录,它工作正常,但是当我必须删除或更新某些记录时,我收到了以下错误:

指定的值不是“Edm.Decimal”类型的实例
参数名称:值

at System.Data.Common.CommandTrees.DbConstantExpression..ctor(DbCommandTree commandTree, Object value, TypeUsage constantType)
at System.Data.Mapping.Update.Internal.UpdateCompiler.GenerateValueExpression(DbCommandTree commandTree, EdmProperty property, PropagatorResult value)
at System.Data.Mapping.Update.Internal.UpdateCompiler.GenerateEqualityExpression(DbModificationCommandTree commandTree, EdmProperty property, PropagatorResult value)
at System.Data.Mapping.Update.Internal.UpdateCompiler.BuildPredicate(DbModificationCommandTree commandTree, PropagatorResult referenceRow, PropagatorResult current, TableChangeProcessor processor, Boolean& rowMustBeTouched)
at System.Data.Mapping.Update.Internal.UpdateCompiler.BuildDeleteCommand(PropagatorResult oldRow, TableChangeProcessor processor)
at System.Data.Mapping.Update.Internal.TableChangeProcessor.CompileCommands(ChangeNode changeNode, UpdateCompiler compiler)



有人可以帮助我吗?

为什么 Entity Framework 映射如此固定?它可以更灵活吗?

Ps.:我得到的错误,我怀疑是因为关联。

我有一个名为 Province 的实体和另一个名为 Country 的实体,我认为这些实体之间的关联导致了更新和删除问题。

问候,

道格拉斯·阿吉亚尔

最佳答案

这可能对您有帮助,也可能无济于事,但是我在做同样的事情时遇到了同样的错误。所以我编辑了概念模型并将主键字段从 Int32 更改为 Decimal。到目前为止,似乎已经解决了一些问题。我仍然需要针对 Sql Server 再次测试并确保这没有破坏它。

关于entity-framework - Entity Framework - 映射小数(13,0)问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1680491/

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