Проблема со связью строки и сущности - PullRequest
3 голосов
/ 25 мая 2010

У меня есть база данных (файл sql 2008 mdf), проект библиотеки классов с файлом edmx, созданный с помощью мастера.Таким образом, строка подключения также создается мастером.Этот проект находится на сервере Teamfoundation.

Я могу использовать все объекты, созданные мастером, при кодировании.

Но когда я запускаю программу и пытаюсь создать entityContainerName, программа падает и выдаетэта ошибка:

Указанное именованное соединение либо не найдено в конфигурации, не предназначено для использования с поставщиком EntityClient, либо недопустимо.

в этой строке: public TestEntities (): base ("name = TestEntities", "TestEntities")

Как решить эту проблему или что я делаю не так?

Ответы [ 3 ]

5 голосов
/ 25 мая 2010

Вам необходимо скопировать строку подключения из файла конфигурации библиотеки классов в файл конфигурации фактически запущенного приложения.

1 голос
/ 25 мая 2010

Первый: удалить модель, второй: удалить все строки подключения в файле app.config.

Затем воссоздайте модель. Это должно вернуть все к значениям по умолчанию.

0 голосов
/ 09 июня 2013

Хорошо, если вы хотите использовать EntityFramework в библиотеке классов, это означает, что ваше приложение не должно знать о конфигурации БД. Это моя точка зрения. Как я решил эту проблему. Мы удаляем все строки подключения из всех файлов App.Config. И мы используем экземпляр нашего контекста с уже созданным соединением.

public class ExpertDataBase : DbContext
{
    public DbSet<Operator> Operators { get; set; }

    public ExpertDataBase()
        : base(ConnectionFactory.GetCESqlConnection(),true)
    {

    }
}

public static class ConnectionFactory
{
   public static DbConnection GetCESqlConnection()
   {
       DbConnection connection = new SqlCeConnection()
           {
               ConnectionString = @"Data   Source= ",
           };
       return connection;
   }
}

Это моя реализация, и она работает без ввода какой-либо строки подключения в любом XML. Эта connectionFactory может быть реорганизована, поэтому я могу каким-то образом внедриться и использовать UnityContainer для разрешения типа соединения. Надеюсь, это поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...