【问题标题】:Dynamic Data Entity Framework missing Decimal Column动态数据实体框架缺少小数列
【发布时间】:2012-12-14 16:17:17
【问题描述】:

我正在尝试构建一个动态数据网站来充当 MySQL 数据库的简单管理界面。

这不是我的专业领域 - 但在关注 microsoft 网站时,一切看起来都非常简单。但是由于某种原因,在项目中使用实体数据模型时,会创建 edmx 模型,但无法正确读取其中一个表。

在 MySQL 数据库中,我有一个包含 9 列的大表。第一列是主键,是一个 INT。其余列的类型为 Decimal,长度为 6,2。

edmx 文件显示 INT 列 - 但无法读取任何 Decimal 列。如果我将这些更改为 VARCHAR 列 - 一切都被完美地阅读了吗?

动态数据字段模板包含一个小数控件,并且实体框架必须能够识别 DECIMAL 类型的列 - 所以我一定做错了 - 我就是不知道是什么!

非常感谢任何帮助! 干杯 达伦

【问题讨论】:

  • OK - 更多信息 - 虽然没有报告错误,但在创建模型时在 VS 中生成了消息 - 说明“消息 3 不支持数据类型 'udecimal';列 'Offline_International '在表 'fcukadmin.customer_fees' 被排除在外”。所以我认为由于某种原因它无法理解 mySQL 十进制格式?

标签: asp.net entity-framework-4 asp.net-dynamic-data


【解决方案1】:

好的 - 我自己找到了答案! 问题是由于在表结构中使用了无符号十进制值。

如果列标记为无符号,则动态数据/实体框架无法识别十进制数据类型。当我更改它时,实体框架能够正确读取数据库结构!

希望这对遇到相同问题的其他人有所帮助!

干杯 达伦

【讨论】:

  • 无法更改数据库列类型怎么办?
【解决方案2】:

如果列标记为无符号,则动态数据/实体框架无法识别十进制数据类型。当我更改它时,实体框架能够正确读取数据库结构!

我明白了:

Property(x => x.NameColumn).HasColumnName(@"NameColumn").HasColumnType("decimal").IsRequired().HasPrecision(9, 4)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-29
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多