2016-03-01 5 views
0

Я хочу выбрать представление из моей базы данных оракула с помощью LINQ. Я уже импортировал базу данных с помощью Visual Studio, но я просто не могу получить доступ к представлению через LINQ.C# Выбрать вид из базы данных Oracle с помощью LINQ

Это, как я выбрал вид мастера:

wizard selection

Теперь я хочу, чтобы выбрать вид, как это:

var db= new ConfoEntities(); 
db.DView.toList(); 

, но это не работает.

Чего я хочу достичь, чтобы выбрать представление, подобное таблице.

+1

Что не работает? Есть ли ошибка? В любом случае, C# чувствителен к регистру, а 'toList()' генерирует синтаксическую ошибку. Отправьте фрагмент кода, который на самом деле компилируется, и полное сообщение об ошибке, которое вы получаете. Если во время выполнения возникает исключение, размещайте весь текст исключения, включая стек вызовов, а не только сообщение об исключении. Вы можете сделать это, вызвав Exception.ToString() –

+0

Я даже не могу скомпилировать проект, потому что Visual Studio не создает класс для представления. Для таблицы он создаст класс, который я могу выбрать с помощью db.exampletable.toList(). –

+0

Нет метода 'toList()'. Это опечатка. Какие объекты EntitySets * определены в вашем контексте? Вы используете правильный класс, т. Е. * Является * ConfoEntities контекстом, созданным мастером? Вы включили пространство имен «Модель», которое вы покажете на скриншоте? * Пожалуйста, разместите фактическую ошибку компиляции * –

ответ

0

Проблема заключалась в том, что столбцы представления в базе данных Oracle имеют значение NULL, если задействован UNION.

My SQL код выглядел примерно так:

CREATE VIEW THEVIEW AS 
SELECT column1 FROM table1 
UNION 
SELECT column1 FROM table2 

Мое решение было то, что я сделал вид с одной Выберите в нем, так без UNION заявления.

CREATE VIEW THEVIEW AS 
SELECT column1 FROM table1 

Затем я импортировал View с помощью мастера VS.

После этого я смог получить доступ к представлению через LINQ.

Последнее, что я сделал, я просто заменил View с:

CREATE OR REPLACE VIEW THEVIEW AS 
SELECT column1 FROM table1 
UNION 
SELECT column1 FROM table2 

Теперь у меня есть вид в моем проекте VS и я могу, наконец, получить доступ к нему с помощью LINQ.

Смежные вопросы