LinqToSql Присоединяйтесь с таблицей и представлением - PullRequest
1 голос
/ 11 ноября 2010

У меня есть таблица, описанная как

CREATE TABLE [dbo].[Project](
[id] [int] IDENTITY(1,1) NOT NULL,
[WRSA_ID] [varchar](9) NOT NULL,
[Administrator] [varchar](5) NOT NULL

И вид, описанный как

CREATE VIEW [dbo].[ProjectView]
AS
SELECT     Project_ID, Project_Name
FROM         WRSA.dbo.projects

WRSA_ID в Project на самом деле является внешним ключом Project_ID в ProjectView, но, очевидно, поскольку таблица ссылается на представление, я не могу наложить ограничение внешнего ключа на таблицу. В пользовательском интерфейсе у меня есть оба объекта Project и ProjectView, но из-за отсутствия внешнего ключа между ними нет физической связи.

Я хочу выбрать все проекты, в которых искомая строка находится либо в WRSA_ID / Project_ID, либо в Project_Name или Administrator. Как бы я сделал это LinqToSql?

1 Ответ

0 голосов
/ 11 ноября 2010

Я полагаю, что вы можете включить и таблицу, и представление в ваш .DBML, а затем вручную добавить связь между ними.Даже если вы не можете, это не помешает вам запрашивать таблицы, как если бы они были объединены.Вам просто нужно добавить Linq 'join', чтобы сообщить Linq, как таблицы должны быть объединены.Как то так:

from project in Project
join projectView in ProjectView on project.WRSA_ID equals projectView.Project_ID
where...
select...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...