2011-12-15 10 views
0

LinqからEntitiesを使用してビューから行を選択したいので、edmxデザイナを右クリックして "データベースからモデルを生成"し、 。ビューが表示されます。私は行を選択することができます。EFモデルにビューを追加した後にこのエラーが発生しないようにするには

しかし、「モデルからデータベースを生成する」、この時点から、今この(良性私は思うが、迷惑な)エラーが発生:

Msg 2714, Level 16, State 6, Line 3 
There is already an object named 'vAdvertiserEmployees' in the database. 
Msg 4909, Level 16, State 1, Line 3 
Cannot alter 'dbo.vAdvertiserEmployees' because it is not a table. 

私はここで間違って何をしているのですか?

+0

多変量の扱いを誤解していないと、何か間違っているとは限りません。エンティティ名をvAdvertiserEmployeeに変更し、その関係またはサブオブジェクト名をvAdvertiserEmployeesに設定すると意味があります。 – MethodMan

答えて

1

およびモデルからの更新モデルの生成データベースは2つの排他的なアプローチです。ビルトインのVS EFデザイナーは、非常に大きな苦労なしには、別のものに移行することはできません。データベースからモデルを生成するまでのビューが消えてしまうようなビューのようなデータベース構造を使い始めると、 EDMXファイル内のビューは、ビューから選択するSQLクエリ(DefiningQueryという内部要素)として表されます。モデルからデータベースを生成すると、データベース全体の説明(SSDL部分)がEDMXファイルから削除され、カスタムSQLクエリを許可しない新しいデータベース(モデルはビューのようなDB構造については何も知らない)に置き換えられます。つまり、マッピングされたすべてのビューがEF用のテーブルになり、次のステップでは、テーブルの作成/変更用のスクリプトが作成されます(Database Generationパワーパックなどの追加ツールでのみ変更されます)。

1つの方法を選択し、全体の開発に従うか、デザイナーにいくつかの拡張機能を使用(購入)してください。これにより、これらのアプローチを入れ替えることができます。モデルとデータベースの両方のチェックを選択的に更新できるツールの例として、Huagati EDMX toolsがあります。

+0

ありがとうございました。私は、EFがDDLを生成させるようにすれば、その半分が既に「そのより良い」という形ですでに結論に達しています。 –

関連する問題