Здравствуйте, 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();//+
вот...