ASP.Net MVC 3与Oracle

IoC*_*IoC 2 c# oracle asp.net-mvc asp.net-mvc-3

我正在使用Asp.net mvc 3开发一个项目,并计划将oracle 11g数据库作为后端.

我能够无问题地访问oracle服务器,并且数据成功加载到html表中.

当我尝试添加,编辑或删除记录时出现问题.我相信这是一个非常简单的问题,但到现在为止,我无法弄明白.使用以下简单模型:

class Country
{
    public int CountryId { get; set; }
    public string CountryName { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

CountryId feild是在Oracle上使用NUMBER(10)创建的,因为我认为它将用作SQL Server Integer.但是引发了异常,表明它不能将值作为Edm.decimal!

我尝试将其设为NUMBER(19)并将CountryId更改为long并仍然获得相同的异常.

我花了很长时间寻找一个使用带有oracle的asp.net mvc的开源项目,但我找不到任何东西!

任何想法,为什么oracle不支持整数,多长?如何使我的MVC项目按预期工作?

Aka*_* KC 5

Oracle数据类型映射,

此数据类型是用于NUMBER(38)的数据类型的别名,并且被设计为使得OracleDataReader返回System.Decimal或OracleNumber,而不是一个整数值.使用.NET Framework数据类型可能会导致溢出.

因此,您需要decimal在.net框架中使用数据类型来支持NUMBEROracle中的数据类型.

如果以下列方式映射数据类型会更好:

[.NET: Int32] = [Oracle:NUMBER(2)..NUMBER(9)*] 
[.NET: Int64] = [Oracle:NUMBER(10)..NUMBER(18)*]
[.NET: Double] = [Oracle:NUMBER(x, 0)..NUMBER(x, 15)*]
[.NET: Double] = [Oracle: FLOAT]
[.NET: Decimal] = [Oracle:NUMBER] 
Run Code Online (Sandbox Code Playgroud)