Номер Oracle приведен к десятичному .Net - PullRequest
0 голосов
/ 12 ноября 2018

Я сопоставляю проект Entity Framework с существующей базой данных Oracle.У меня есть класс:

public class Order 
{
   [Key]
   public string OrderNo {get;set;} // Oracle type VARCHAR2(100)
   public decimal Cost {get;set;} // Oracle type NUMBER (no precision)
}

public DbSet<Order> Orders {get;set;}

Затем выполнить следующее:

context.Orders.Find("0001");

возвращает ошибку Specified cast is not valid!.Похоже, это вызвано очень большим десятичным значением в столбце COST.Я попытался установить следующий атрибут на объекте:

[Column("ROUND(COST,2)"]
public decimal Cost {get;set;}

, который вызывает исключение сгенерированного SQL OracleException: ORA-00904: "Extent1"."ROUND(COST,2)": invalid identifier.Я хотел бы, чтобы он генерировал ROUND("Extent1".COST,2).

Есть ли способ заставить базу данных преобразовать столбец как часть оператора SQL?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...