ADO.NET Entity: ограничение выбора данных на основе View - PullRequest
1 голос
/ 20 декабря 2008

Рассмотрим следующий пример:

Таблица SQL Заказчик:

ID: Primary Key
Name: Name

SQL View ViewCustomerSelection:

ID: Link to Customer ID
SomeOption: Not important

Я хотел бы создать ADO.NET, объект, который выбирает только клиентов, имеющих соответствующие значения в ViewCustomerSelection

Следующее НЕ работает:

  • Создание объекта, который сопоставляется с Customer и ViewCustomerSelection без использования каких-либо условий и каких-либо полей из ViewCustomerSelection: ViewCustomerSelection не включен в SQL, и возвращаются все клиенты.
  • Включить поле из ViewCustomerSelection: правильный выбор возвращается, но теперь объект Customer не может быть обновлен
  • Укажите условие «not null» в поле SomeOption: ошибка - должно быть сопоставлено «Property ViewCustomerSelection.SomeOption с условием« IsNull = false ».
  • Укажите условие «not null» в поле ViewCustomerSelection.ID: error - «Тип сущности содержит условие в своем первичном ключе. Удалите условие из сопоставления.

уточнение

Определение базы данных:

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%'

Я бы хотел, чтобы у сущности Customer с ID и именем были записи только для записей, присутствующих в ViewCustomerSelection (примечание: на самом деле представление является более сложным и не может быть выражено с помощью простых условий)

...