如何将十进制(c#)转换为INTERVAL DAY TO SECOND(oracle)?

时间:2016-06-21 14:34:28

标签: c# oracle asp.net-mvc-4 entity-framework-5

我在Oracle 11g中有一张表:

----------------------------------------
|Field   |  Type                        |
|myField |  interval Day(0) to second(0)|
|myField2|  interval Day(0) to second(0)|
|myField3|  VARCHAR2(150 BYTE)          |
----------------------------------------

我在Entity Framework 5中有这个映射

public class MyTable
{
    public Decimal? MyField { get; set; }
    public Decimal? MyField2 { get; set; }
    public String MyField3 { get; set; }
}

class MyTableMap : EntityTypeConfiguration<MyTable> {
    public MyTableMap ()
    {
        ToTable("myTabla");
        Property(u => u.MyField).HasColumnName("myField");
        Property(u => u.MyField2).HasColumnName("myField2");
        Property(u => u.MyField3).HasColumnName("myField3");
    }
}

所以,当他试图更改字段“MyFiel y MyFiel2”时,请标记以下错误:“更新条目时发生错误。有关详细信息,请参阅内部异常。”并且innerException具有null

当我更改“MyField3”字段时,一切正常

有人知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

这是使用Fluent API的解决方案

class MyTableMap : EntityTypeConfiguration<MyTable> {
    public MyTableMap ()
    {
        ToTable("myTabla");
        Property(u => u.MyField).HasColumnName("myField").HasColumnType("INTERVAL DAY TO SECOND");
        Property(u => u.MyField2).HasColumnName("myField2").HasColumnType("INTERVAL DAY TO SECOND");
        Property(u => u.MyField3).HasColumnName("myField3");
    }
}