Re[3]: DLINQ и контекстное соединение MS SQL Server 2005
От: Amba  
Дата: 30.08.06 11:10
Оценка: 10 (1)
Здравствуйте, Amba, Вы писали:

A>Здравствуйте, Красин, Вы писали:


К>>Здравствуйте, Amba, Вы писали:


К>>А можно кусочек кода посмотреть, на котором можно будет вопроизвести проблему?


A>Не вопрос:

A>как грицо ингридиенты: VS2005, LINQ CTP May 2006, SQL Server 2005, БД на сервера содержит наипростейшую таблицу с числовым и строковым полями, числовое — автоикрементируемое.
A>строка для запуск меппера для базы данных:
A>"C:\Program Files\LINQ Preview\Bin\SqlMetal.exe" /server:имя_сервера /database:название_БД /code:"D:\Projects\Путь_к_тестовому_проекту\OurDbContext.cs" /namespace:SomeCompany.SomeProject.SqlDataMapping /sprocs /pluralize
A>созданный файлик с классом-описанием нашей базы данных помещаем в отдельную сборку, которую подлкючаем затем к обоим проектам
A>на сервер загружаем сборки System.Data.DLing.dll и System.Query.dll
A>и в оба проекта добавляем на них сцылки
A>- код хранимой процедуры:
A>
A>     [SqlProcedure]
A>        public static int clrsp_SubjectTest(out string message)
A>        {
A>            message = null;
A>            using (SqlConnection connection = new SqlConnection("Context connection = true"))
A>            {
A>                try
A>                {
A>                    connection.Open();
A>                    OurDbContext context = new OurDbContext(connection);
A>                    Subject subject = new Subject();
A>                    subject.Value = "test subject";
A>                    context.Subjects.Add(subject);
A>                    context.SubmitChanges();
A>                    return (int)StoredProcedureReturnCodes.Success;
A>}
A>                catch (Exception e)
A>                {//приходим сюда
A>                    message = e.Message;
A>                    return (int)StoredProcedureReturnCodes.Error;
A>                }
A>}
A>}
A>

A>- код для работы с клиентской стороны:
A>
A>     public void SubjectTest()
A>        {
A>OurDbContext DbContext = new OurDbContext(обычная строка подключения с вашему серверу);
A>            string msg = null;
A>            try
A>            {
A>                Subject subject = new Subject();
A>                subject.Value = "test subject";
A>                DbContext.Subjects.Add(subject);
A>                DbContext.SubmitChanges();// проходит нормально
A>            }
A>            catch (Exception e)
A>            {
A>                msg = e.Message;
A>            }
A>}
A>


Спасибо, как грицо всем участникам обсуждения за полезные и содержательные ответы
для серверного использования DLINQ для добавления данных в таблицу резольюшен будет такой:
                    Subject subject = new Subject();
                    subject.Value = "test subject";
                    context.Subjects.Add(subject);
                    context.LocalTransaction = connection.BeginTransaction();//+
                    context.LocalTransactionsOnly = true;//+
                    context.SubmitChanges();
                    context.LocalTransaction.Commit();//+

вот...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.