2015-09-21 80 views
0

我正在嘗試爲我的實體框架模型生成Oracle SQL。無法在Oracle數據庫的實體框架中生成sql

我可以生成SQLServer SQL罰款,錯誤只發生在甲骨文世代。

我已經安裝好VS的oracle開發工具。
我已經爲數據庫生成工作流程選擇了「通過T4生成Oracle(TPT).xaml(VS)」,並且爲DDL生成模板選擇了「SSDLTOOracle.tt(VS)」。

當我嘗試生成從右鍵菜單中的SQL,我得到以下錯誤一遍又一遍的重複着:

被稱爲「CsdlToSsdlAndMslActivity」活動產生的SSDL是無效的,並具有以下錯誤:
默認值(false)與爲Decimal指定的構面不兼容。該值必須是與到38尺度小於或等於和精度小於或等於十進制數到38
... [剪斷]

我的模型不包含任何小數。
我試着將我的Int32和Double的默認值設置爲(None)以外的值,但是這並沒有解決它。

任何人都可以幫助我解決這個問題嗎?

+0

您使用的是哪個版本的Entity Framework和odp.net? –

+0

@BootStrapper我所有的pacakges都是最新的nuget - EF 6.1.3,ODP.NET託管12.1.022,ODP.NET託管EF 12.1.022 –

回答

0

您可以將xml定義添加到項目的app/web.config文件(在「配置」部分內),然後重試。

<oracle.dataaccess.client> 
    <settings> 
    <add name="bool" value="edmmapping number(1,0)" /> 
    <add name="byte" value="edmmapping number(3,0)" /> 
    <add name="int16" value="edmmapping number(5,0)" /> 
    <add name="int32" value="edmmapping number(10,0)" /> 
    <add name="int64" value="edmmapping number(19,0)" /> 
    <add name="int16" value="edmmapping number(38,0)" /> 
    <add name="int32" value="edmmapping number(38,0)" /> 
    <add name="int64" value="edmmapping number(38,0)" /> 
    </settings> 
</oracle.dataaccess.client> 
+0

我使用的是託管驅動程序,所以我試着''。 manageddataaccess.client> <版本號= 「*」> <添加名稱= 「布爾」 精密= 「1」/> <添加名稱= 「字節」 精密=」 3「/> '' –

+0

這並沒有工作,雖然,我試圖生成模型 –

+0

OK時,仍然得到了同樣的信息。你可以嘗試使用「SSDLToSQL10.tt」選項(保持配置更改)? –

相關問題