Official Oracle SQLとEntity Frameworkドライバを使用してデータベースを読み取ります。しかし、データベースを読むときには、テーブル名に "dbo"という接頭辞が付いています。:Entity FrameworkでOracleスキーマ名を避ける
SELECT
*
FROM "dbo"."Woningen"
"dbo"なし。接頭辞コードは正常に動作し、エラーが発生する "テーブルまたはビューが存在しません"。これはおそらく、ユーザーが 'dbo'ではないため、そのスキーマにアクセスできないためです。私は、Oracle nugetパッケージを更新しようとしましたが、その後、それはエラーを思い付く
[Table("Woningen")]
public class Woningen
「接続文字列が整形式ではありません」:これは私が使用しているEntity Frameworkのコードです。だから、おそらくこれまでと同じエラーを抱えています。ただちに失敗しました。これは私が使用したconnectionString形式です:
<add name="DefaultConnection"
providerName="Oracle.ManagedDataAccess.Client"
connectionString="USER ID=testUser;PASSWORD=password;
Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=serverUrl)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=Database)));"/>
私は、この問題に対する3点の解決を参照して、それらを実装する方法が分からないことができます。
- クエリからスキーマ名を除外するためにEntity Frameworkのを操作
- は...
- アップデートにスキーマにドライバを私のユーザーのアクセスを与え、誰でもフォーマットがどのように変化するかを知っている場合は、フォーマットのConnectionStringを修正
現在のコードは既に本番環境で動作しているので、現在のバージョンは問題ありません。データベースとそのユーザーは新しいので、問題は作成方法によって異なる可能性があります。
EFで使用する適切なスキーマを指定できます。 EF6 + 'modelBuilder.HasDefaultSchema("あなたのスキーマ名 ");' –
@ DanielShillcockありがとう、それは、ユーザー名をスキーマ名として使用するソリューションです。あなたがそれを答えにするなら、私はそれを受け入れるでしょう。 – MrFox