powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF DataBase First - как подключится с помощью сформированной строки подключения
8 сообщений из 8, страница 1 из 1
EF DataBase First - как подключится с помощью сформированной строки подключения
    #39539399
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Вроде бы всё просто:
Код: c#
1.
2.
3.
4.
5.
6.
            using (EntityConnection conn = new EntityConnection(conString))
            {
                conn.Open();
                //-------------------------
                conn.Close();
            }



Сформируй строку соединения "conString" и будет тебе счастье! А для этого имеется конструктор строки подключения "EntityConnectionStringBuilder()". Формирую - и ничего не получается, даёт ошибку. При этом строка получается идентичной той, что и в App.config, с которым всё работает. Простейший примерчик (консольный вариант, VS 2015):

Код: c#
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.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
using System;
using System.Data.Entity.Core.EntityClient;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            ConnStringClass connClass = new ConnStringClass();
            string conString = connClass.CreateConnection();
            using (EntityConnection conn = new EntityConnection(conString))
            {
                conn.Open();
                //-------------------------
                conn.Close();
            }
            Console.ReadKey();
        }
    }

    public class ConnStringClass
    {
         public string CreateConnection()
        {
            var newConnection = new EntityConnectionStringBuilder()
            {
                Metadata = @"res://*/MyProductShopModel.csdl|res://*/MyProductShopModel.ssdl|res://*/MyProductShopModel.msl",
                Provider = @"System.Data.SqlClient",
                ProviderConnectionString = @"data source=(localdb)\v11.0;initial catalog=MyProductShop;"
                        + @"PersistSecurityInfo=true;UserID=SuperAdmin;Password=1;"
                        + @"multipleactiveresultsets=True;App=EntityFramework"
            };

            return newConnection.ToString() + @" providerName=""System.Data.EntityClient""";
        }

    }
}



Предполагается, что пользователи будут разными, с разными правами (ролями) так что логин и пароль будут поставляться в строку динамически. Но пока и простейший вариант не работает.
В чём причина, чего не хватает?
С уважением ВВГ
...
Рейтинг: 0 / 0
EF DataBase First - как подключится с помощью сформированной строки подключения
    #39539453
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValGer,
Ты сформированную строку покажи. И ошибку.
...
Рейтинг: 0 / 0
EF DataBase First - как подключится с помощью сформированной строки подключения
    #39539578
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ValGer,
Ты сформированную строку покажи. И ошибку.

Показываю обе строки - сформированную и из App.config

Сформированная строка подключения:
metadata=res://*/MyProductShopModel.csdl|res://*/MyProductShopModel.ssdl|res://*/MyProductShopModel.msl;provider=System.Data.SqlClient;provider connection string="data source=(localdb)\v11.0;initial catalog=MyProductShop;persist security info=True;user id=SuperAdmin;password=1;MultipleActiveResultSets=True;App=EntityFramework;" providerName="System.Data.EntityClient"


Строка из App.config:(потом в App строку соединения на всякий случай закомментировал).
<add name="MyProductShopEntities" connectionString="
metadata=res://*/MyProductShopModel.csdl|res://*/MyProductShopModel.ssdl|res://*/MyProductShopModel.msl;provider=System.Data.SqlClient;provider connection string="data source=(localdb)\v11.0;initial catalog=MyProductShop;persist security info=True;user id=SuperAdmin;password=1;MultipleActiveResultSets=True;App=EntityFramework"" providerName="System.Data.EntityClient"
/>

Проверил побуквенно - обе идентичны за исключение того, что в App.config символы кавычек введены как & quot;

На рисунке показано возникшее прерывание. Посмотрел что начинается со 135 символа - это "provider connection string="data source=(localdb)\v11.0 ....". Что тут нехорошо - не пойму!
Что посоветуете?
С уважением ВВГ
...
Рейтинг: 0 / 0
EF DataBase First - как подключится с помощью сформированной строки подключения
    #39539582
Фотография hVostt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
EF DataBase First - как подключится с помощью сформированной строки подключения
    #39539588
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hVosttValGer,

https://msdn.microsoft.com/ru-ru/library/bb738533(v=vs.110).aspx

Ну-да, ну-да!
С этой статьи я и начинал!
...
Рейтинг: 0 / 0
EF DataBase First - как подключится с помощью сформированной строки подключения
    #39539644
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValGer,

Понял в чём дело. В App.config строка заканчивается providerName="System.Data.EntityClient" - и я тоже лепил это в конец. А оказывается этого делать не нужно. Удалил этот хвост и после этого всё пошло нормально.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
        
        public string CreateConnection()
        {
            var newConnection = new EntityConnectionStringBuilder()
            {
                Metadata = @"res://*/MyProductShopModel.csdl|res://*/MyProductShopModel.ssdl|res://*/MyProductShopModel.msl",
                Provider = @"System.Data.SqlClient",
                ProviderConnectionString = @"data source=(localdb)\v11.0;initial catalog=MyProductShop;"
                        + @"persist security info=True;user id=SuperAdmin;password=1;"
                        + @"MultipleActiveResultSets=True;App=EntityFramework;"
            };

            return newConnection.ToString();
        }



Теперь другой вопрос. БД открыта, а как теперь добраться до таблиц (сущностей)? Где теперь контекст? Где мой любимый LINQ?
...
Рейтинг: 0 / 0
EF DataBase First - как подключится с помощью сформированной строки подключения
    #39539648
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ValGer,
Другую тему заводи)))
...
Рейтинг: 0 / 0
EF DataBase First - как подключится с помощью сформированной строки подключения
    #39539664
ValGer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123ValGer,
Другую тему заводи)))
Понял!
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EF DataBase First - как подключится с помощью сформированной строки подключения
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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