1

次の例を検討してください。

SQL テーブルの顧客:

ID: Primary Key
Name: Name

SQL ビュー ViewCustomerSelection:

ID: Link to Customer ID
SomeOption: Not important

ViewCustomerSelection に対応する値を持つ顧客のみを選択する ADO.NET エンティティを作成したいと思います

以下は機能しません:

  • ViewCustomerSelection の条件やフィールドを使用せずに Customer および ViewCustomerSelection にマップするエンティティを作成します。 ViewCustomerSelection は SQL に含まれず、すべての顧客が返されます。
  • ViewCustomerSelection からのフィールドを含めます: 正しい選択が返されますが、現在 Customer オブジェクトは更新できません
  • SomeOption フィールドに「null 以外」の条件を指定します: エラー - 「'IsNull=false' 条件のプロパティ ViewCustomerSelection.SomeOption をマップする必要があります。
  • ViewCustomerSelection.ID フィールドに「null 以外」の条件を指定します: エラー - 「エンティティ タイプの主キーに条件が含まれています。マッピングから条件を削除してください。

明確化

データベース定義:

create table Customer {
    ID [int] IDENTITY(1,1) NOT NULL,
    Name [varchar](50) NOT NULL
} CONSTRAINT [PK_Customer] PRIMARY KEY CLUSTERED 
(
    [ID] ASC
)

create table ViewCustomerSelection
as select customer.id, ToUpper(customer.name) as SomeOption where customer.name like 'A%'

ViewCustomerSelection に存在するレコードのレコードのみを持つ、ID と名前を持つエンティティ Customer が必要です (実際には、ビューはより複雑であり、単純な条件を使用して表現することはできません)。

4

0 に答える 0