まず、テーブルを作成するためにエンティティフレームワークのコードを使用しています。私はホストされた環境で作業しているので、DBではなくテーブルを作成してください.DBを作成できるユーザーはいません。 DBの更新をコミット生成されたテーブルからデータを取得するときにオブジェクト名 'dbo.TableName'が無効です
が正常に動作しますが、データを取得すると、例外提供します:
例外の詳細:System.Data.SqlClient.SqlException:無効なオブジェクト名 'dbo.EventHosts' を。
私はEFコードファーストを使用してDBを作成していないため、この問題が発生していると読んでいます。それはいいですが、どのように私はこれをエレガントに解決するのですか?
生成されたすべてのテーブルには、dboのような接頭辞がありません。このようなソリューションが動作しない、と全くエレガントではないん
[Table("EventHosts", Schema = "")]
こんにちは、ご不便をおかけして申し訳ありません。それは、MS SQLと実行されているクエリです。何かSELECTして何かをdbo.EventhHostsから取得してください。明らかに間違っているのは、テーブル名がEventHostsだけであるためです。 したがって、Entity Frameworkがdboを入れないようにする必要があります。テーブル名の前に、または接頭辞を付けてテーブルを生成する必要があります。 –
プレフィックスは実際にはスキーマであり、dboはデフォルトのものです。どのスキーマがデータベースのデフォルトですか?そのスキーマをマッピングで使用する必要があります。 –
@LadislavMrnka - ありがとう! 私は何をしたのですか: - exec sp_columns EventHostsを実行しました(Visual Studioで) - TABLE_OWNER列の名前を取得しました - 属性[Table( "EventHosts"、Schema = "TABLE_OWNER_HERE")]のエンティティ それは問題を解決します。誰かが、この属性をすべてのエンティティに追加するのではなく、1行ですべてのエンティティに対してどのように設定できるか考えているなら、私に知らせてください。 –