Здравствуйте, Красин, Вы писали:
К>Здравствуйте, Amba, Вы писали:
К>А можно кусочек кода посмотреть, на котором можно будет вопроизвести проблему?
Не вопрос:
как грицо ингридиенты: VS2005, LINQ CTP May 2006, SQL Server 2005, БД на сервера содержит наипростейшую таблицу с числовым и строковым полями, числовое — автоикрементируемое.
строка для запуск меппера для базы данных:
"C:\Program Files\LINQ Preview\Bin\SqlMetal.exe" /server:имя_сервера /database:название_БД /code:"D:\Projects\Путь_к_тестовому_проекту\OurDbContext.cs" /namespace:SomeCompany.SomeProject.SqlDataMapping /sprocs /pluralize
созданный файлик с классом-описанием нашей базы данных помещаем в отдельную сборку, которую подлкючаем затем к обоим проектам

на сервер загружаем сборки System.Data.DLing.dll и System.Query.dll
и в оба проекта добавляем на них сцылки

— код хранимой процедуры:
[SqlProcedure]
public static int clrsp_SubjectTest(out string message)
{
message = null;
using (SqlConnection connection = new SqlConnection("Context connection = true"))
{
try
{
connection.Open();
OurDbContext context = new OurDbContext(connection);
Subject subject = new Subject();
subject.Value = "test subject";
context.Subjects.Add(subject);
context.SubmitChanges();
return (int)StoredProcedureReturnCodes.Success;
}
catch (Exception e)
{//приходим сюда
message = e.Message;
return (int)StoredProcedureReturnCodes.Error;
}
}
}
— код для работы с клиентской стороны:
public void SubjectTest()
{
OurDbContext DbContext = new OurDbContext(обычная строка подключения с вашему серверу);
string msg = null;
try
{
Subject subject = new Subject();
subject.Value = "test subject";
DbContext.Subjects.Add(subject);
DbContext.SubmitChanges();// проходит нормально
}
catch (Exception e)
{
msg = e.Message;
}
}
Здравствуйте, 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();//+
вот...