powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF Code First - помогите начинающему
7 сообщений из 7, страница 1 из 1
EF Code First - помогите начинающему
    #39288749
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Разбираю очень хороший пример по началам работы с EF ( https://msdn.microsoft.com/ru-ru/data/jj193542 ). Всё в нём понятно и работает, однако есть странная вещь, связанная с генерацией базы данных на основе созданных классов.
Если использую локальную базу данных ((localDB)\v11.0), то все прекрасно! Вижу созданные таблицы и информацию в них.
Если пытаюсь использовать нормальный сетевой сервер (server1\POIPKRO2012, 49280), то всё работает, информация где-то сохраняется , но таблицы в БД не появляются. Рисунок иллюстрирует данную ситуацию. (Работаю с VS 2012)
В чём может быть причина?
...
Рейтинг: 0 / 0
EF Code First - помогите начинающему
    #39289250
BKV88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValGer,

А файл app.config меняли?
...
Рейтинг: 0 / 0
EF Code First - помогите начинающему
    #39289313
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BKV88,

А как же! Это самый первый пройденный этап - ничего не помогло.
Правда, нашёл место куда оно всё пишется сервером (localDB)\v11.0 - оказывается файлы <Имя-базы>.mdf и *.ldf пишутся по пути C:\Пользователи\<Имя-пользователя>
Поэтому, данную проблему можно объехать на "кривой козе". Просто, после отладки с локальным вариантом можно эти файлы тупо перенести в каталог ...\MSSQL\DATA основного сервера и там подключить эту отлаженную базу. Криво, конечно, но пока другого способа я не вижу.
...
Рейтинг: 0 / 0
EF Code First - помогите начинающему
    #39289320
BKV88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValGer,

Приложите конфиг
...
Рейтинг: 0 / 0
EF Code First - помогите начинающему
    #39289542
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BKV88,

Да, вот пожалуйста:

Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
  </configSections>
  <connectionStrings>
    <add name="CodeFirstNewDatabaseSample.Properties.Settings.ConnString"
      connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=CodeFirstNewDatabaseSample.BloggingContext;Integrated Security=True"
      providerName="System.Data.SqlClient" />
  </connectionStrings>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
  </startup>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
      <parameters>
        <parameter value="v11.0" />
      </parameters>
    </defaultConnectionFactory>
    <providers>
      <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
    </providers>
  </entityFramework>
</configuration>



Да толку мало - что есть строка, указывающая на сетевой или Express сервер, что её нет, или указывает на другой сервер (.\SQLExpress (2012)) - результат один и тот же. Данные пишутся исключительно в LocalDB студии (VS 2012).
Без секции <connectionStrings> тоже всё распрекрасно работает и пишется в базу того же локального сервера (localDB)\v11.0
Попробуйте выполнить этот пример - он простой (консольное приложение C#) и весь код переносится копипастом из него.
С уважением ВВГ
...
Рейтинг: 0 / 0
EF Code First - помогите начинающему
    #39289774
BKV88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValGer,

Измените описание класса

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
 public class BloggingContext : DbContext
    {
        public BloggingContext()
            : base("CodeFirstNewDatabaseSample.Properties.Settings.ConnString")
        { }

        public DbSet<Blog> Blogs { get; set; }
        public DbSet<Post> Posts { get; set; }
    }
...
Рейтинг: 0 / 0
EF Code First - помогите начинающему
    #39289934
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
BKV88,

Да, примерно на это я и набрёл в совершенно другом месте ( http://professorweb.ru/my/entity-framework/6/level2/2_9.php )
Цитирую:
"Для указания строки подключения используется раздел конфигурации connectionString. По умолчанию, строка подключения должна иметь то же имя, что и файл контекста, при этом можно указать как полное имя так и краткое (т.е SampleContext или CodeFirst.SampleContext). Благодаря этому, Entity Framework автоматически найдет нужную строку подключения в файле конфигурации и использует ее. В примере ниже показано определение строки подключения: ..."

Я строил строку подключения используя "Settings.Designers" потому она и получилась
name="CodeFirstNewDatabaseSample.Properties.Settings.ConnString"

Это совершенно не совпадает с именем контекста - отсюда и проблемы. Заменил на
name="CodeFirstNewDatabaseSample.BloggingContext" (можно просто name="BloggingContext") и всё пошло!

Блин! Нет чтобы для новичков такие нюансы оговаривать, тогда и процесс освоения пошёл бы быстрее.
Спасибо за участие, данная проблема закрыта!
ВВГ
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF Code First - помогите начинающему
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]