2016-07-15 3 views
0

У меня установлена ​​Oracle DB, а в базе данных есть куча Views. Вид GFL_BUYERS_ID_V имеет 2 столбца EMPLOYEE_ID и FULL_NAME. База данных уже заполнена до того, как я создал проект mvc.asp net база данных mvc oracle не может получить данные

I Добавить базу данных и успешно добавили схему modelBuilder.HasDefaultSchema("examplename."); в моем контексте, потому что, когда я использую SQL для извлечения данных, мне нужно сделать:

SELECT * FROM "examplename".GFL_BUYERS_ID_V

для того, чтобы работать, я полагаю, что это для чего он нужен. Извиняюсь заранее, я новичок в .net, mvc и подключении баз данных.

следующие аварии на .Select и говорит мне, что значение не может быть пустым (я понятия не имею, что возвращается нулевое значение, если проверять значения в контекстно>GFL_BUYERS_ID_V, когда он ломается, в Local есть значения 0, и результат Посмотреть содержит все соответствующие один-х, я предполагаю, что это относится информация, но я не знаю, как использовать):

 var model = new EmployeeModel(); 

     using (var context = new OracleContext()) 
     { 
      model.Buyers = context.GFL_BUYERS_ID_V.Select(s => new EmployeeModel.Buyer 
      { 
       BuyerId = s.EMPLOYEE_ID, 
       FullName = s.FULL_NAME 
      }).ToList(); 

     } 
     return View(model); 

это мой объект:

public class EmployeeModel 
{ 

    public int EmployeeModelId { get; set; } 
    public List<Buyer> Buyers { get; set; } 


    public class Buyer 
    { 

     public int BuyerId { get; set; } 
     public string FullName { get; set; } 
    } 
} 

Я знаю, есть соединение с базой данных, и я может запросить его через VB. Я достаточно исказил строку подключения, чтобы знать, что это правильно.

Редактировать: Поцарапать, что у меня нет подсказки, если моя программа может подключиться к базе данных или нет.

Screen shot of the error

Если вы хотите, чтобы я предоставить больше информации, я буду рад, на самом деле хочу, чтобы сделать эту одну работу.

Edit 2: Это похоже на какой-то больной шуткой ясно это показывает подсчет: how

ответ

0

Так что проблема была в сервере базы данных, а не в коде. По какой-то причине он использовал старую стандартную переменную схемы, которая не использовалась в течение длительного времени.

0

Есть внутреннее исключение, которое является причиной ArgumentNullException?

Вы определенно думаете по правильному пути, поэтому я хотел бы разбить его на управляемые части:

1) подтверждающей связь DB

2) подтвердить контекст является действительным, который, скорее всего, будет только недействителен если ни одна БД подключения

3) подтверждают GFL_BUYERS_ID_V не показывает данные

4) затем сделать проекцию на другую модель

+0

Если я иду в проводник сервера, я вижу, что он подключен к базе данных, и я могу использовать запрос в VB для извлечения данных из представления. Но даже если я попытаюсь получить context.GFL_BUYERS_ID_V.Count(). Это все еще null, поэтому я думал, что схема не то, что я думал, что это так, поэтому я прокомментировал это. и если я запустил его без схемы, я получаю исключение исключения внешнего компонента. Оба принадлежат Oracle.ManagedDataAccess.Client.OracleException В противном случае я не имею понятия, как проверить, подключена ли программа самостоятельно или как получить представление для отображения данных через программу. –

+0

Можете ли вы отбросить данные или получить количество записей для других таблиц или представлений в одной и той же схеме? –

+0

Я не могу, Когда я получаю нулевое значение или внешний компонент бросает исключение. Я не 100%, что они имеют в виду, но поскольку я получаю оба из них на основе добавления или удаления схемы (опять же я не уверен, что она делает). Я принимаю нулевое значение, потому что он не может определить правильный объект, так как я могу вытащить значения из представления с помощью SQL. Поэтому решение ошибки внешнего компонента похоже на путь вперед, так как я могу просто испортить команду для извлечения информации. –

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