Рассмотрим следующий пример:
Таблица 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 (примечание: на самом деле представление является более сложным и не может быть выражено с помощью простых условий)