Здравствуйте! Строго не судите, изучаю MVC. Всё хорошо и прекрасно, работаю с БД. Но есть один вопрос, на которую никак не могу найти ответ.
При подключении к существующей БД, программно создается таблица из контекста. Например есть таблица STUD, имеется больще 1000 записей. Создаю контекст, репозиторий, подключаюсь, а в базе создается пустая таблица STUDs и MVC работает с ним. Пробовал создать контекст с названием STUD как у таблицы все коды перепотрошил все ровно не подключается к готовой таблице. На одном из уроков в youtubе говорится что особенность MVC, думаю бред или нет?
Если не сложно можно несколько примеров как правильно подключится к существующей таблице?
Подключаться надо не к существующей таблице, а к существующей бд. Для этого надо в файле web.config указать в conectionstring путь к бд и соответствующий ей логин/пароль. Если conectionString укажете правильно, то будет соединение с ней. Только еще учтите, что все модели-сущности у Вас должны быть заранее реализованы под эту бд и соответствовать ее схеме.
Если нужно работать с двумя бд, то создаете два контекста, каждый со своим conectionString к бд.
Если имеется в виду, что в новой бд руками создали таблицу и заполнили данными, а бд создает ее новую и чистую, значит, где-то ошибка или в имени таблицы, или в том как Вы ее указали в DbSet.
к бд подключаюсь через конфиг, всё хорошо. с таблицами проблема,
public class blogcontext: DbContext
{
public DbSet<blog> blogs { get; set; } <-- таблица называется "blog" если указать как здесь blogs то создается новая таблица "blogs"
}
Если писать
public class blogcontext: DbContext
{
public DbSet<blogs> blog { get; set; }
}
Bisekenov, Вы так и не уточнили, что у Вас происходит. У Вас в бд есть таблица, которую Вы руками создали и заполнили данными и контекст ее не видит?
Первое,public DbSet<blogs> blog и не создаст ничего, если нет модели blogs.
Второе, в EF соглашение по названию таблиц (которое в принципе настраивается) по умолчанию, имя таблицы будет по названию сущности + s, т.е. делает множественное число. Причем делает это умно, если сущность будет называться copy, то таблица будет copies. Если при запуске он не найдет таблицу с таким именем, то он ее создаст. Вы говорите, что у Вас есть таблица STUD и Вы наверняка сделали, чтото подобное public DbSet<STUD> STUD { get; set; }
Но он создаст таблицу STUDs, доступ к которой будет через поле STUD.
Поэтому просто переименуйте Вашу таблицу согласно соглашению наименований в EF.