LINQ2SQL - как получить IDENTITY после INSERT?
От: Northrop  
Дата: 20.01.11 21:05
Оценка:
Есть поле типа int IDENTITY(1,1). Как мне получить соответствующее значение сразу после выполнения InsertOnsubmit()?
Re: LINQ2SQL - как получить IDENTITY после INSERT?
От: Northrop  
Дата: 20.01.11 21:22
Оценка:
Вот мой код:
                DataContext db = new DataContext("string");
                Table<SDocument> tblDocs = db.GetTable<SDocument>();
                SDocument d = new SavedDocument();
                d.FileName = FileUpload1.FileName;
                d.Body = FileUpload1.FileBytes;
                tblDocs.InsertOnSubmit( d);
                db.SubmitChanges( );
                lblDocID.Text = d.ObjectID.ToString();


Вот что мне надо сделать, чтобы после его выполнения получить сгенерированное d.ObjectID ?
Re: LINQ2SQL - как получить IDENTITY после INSERT?
От: _FRED_ Черногория
Дата: 20.01.11 21:25
Оценка: +1
Здравствуйте, Northrop, Вы писали:

N>Есть поле типа int IDENTITY(1,1). Как мне получить соответствующее значение сразу после выполнения InsertOnsubmit()?


Никак — айдентити раздаёт сервер и пока ему не пошлют данные узнать "свой" айдентити нельзя.
Help will always be given at Hogwarts to those who ask for it.
Re[2]: LINQ2SQL - как получить IDENTITY после INSERT?
От: _FRED_ Черногория
Дата: 20.01.11 21:29
Оценка: 3 (1)
Здравствуйте, Northrop, Вы писали:

N>Вот мой код:

N>                DataContext db = new DataContext("string");
N>                Table<SDocument> tblDocs = db.GetTable<SDocument>();
N>                SDocument d = new SavedDocument();
N>                d.FileName = FileUpload1.FileName;
N>                d.Body = FileUpload1.FileBytes;
N>                tblDocs.InsertOnSubmit( d);
N>                db.SubmitChanges( );
N>                lblDocID.Text = d.ObjectID.ToString();


N>Вот что мне надо сделать, чтобы после его выполнения получить сгенерированное d.ObjectID ?


У мужиков вот похожий код работает
Help will always be given at Hogwarts to those who ask for it.
Re[3]: LINQ2SQL - как получить IDENTITY после INSERT?
От: Northrop  
Дата: 20.01.11 23:36
Оценка:
Здравствуйте, _FRED_, Вы писали:

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


N>>Вот мой код:

_FR>
N>>                DataContext db = new DataContext("string");
N>>                Table<SDocument> tblDocs = db.GetTable<SDocument>();
N>>                SDocument d = new SavedDocument();
N>>                d.FileName = FileUpload1.FileName;
N>>                d.Body = FileUpload1.FileBytes;
N>>                tblDocs.InsertOnSubmit( d);
N>>                db.SubmitChanges( );
N>>                lblDocID.Text = d.ObjectID.ToString();
_FR>


N>>Вот что мне надо сделать, чтобы после его выполнения получить сгенерированное d.ObjectID ?


_FR>У мужиков вот похожий код работает


А у меня — нет. Пишет, что не могу вставить identity при IDENTITY_INSERT OFF. Логично. Но мне и не впилось вставлять свой identity. Как быть?
Re: LINQ2SQL - как получить IDENTITY после INSERT?
От: 0K Ниоткуда  
Дата: 21.01.11 02:09
Оценка:
Здравствуйте, Northrop, Вы писали:

N>Есть поле типа int IDENTITY(1,1). Как мне получить соответствующее значение сразу после выполнения InsertOnsubmit()?


Вот за это я и не люблю абстракции там где они не нужны. Вы больше времени потратите на эти мелочи, чем если бы вручную написали процедуры в SQL-сервере и использовали простенький слой для их вызова. Побаловаться -- да. Использовать для практики -- не имеет смысла.
Re[4]: LINQ2SQL - как получить IDENTITY после INSERT?
От: _FRED_ Черногория
Дата: 21.01.11 06:08
Оценка:
Здравствуйте, Northrop, Вы писали:

N>>>Вот что мне надо сделать, чтобы после его выполнения получить сгенерированное d.ObjectID ?

_FR>>У мужиков вот похожий код работает

N>А у меня — нет. Пишет, что не могу вставить identity при IDENTITY_INSERT OFF. Логично. Но мне и не впилось вставлять свой identity. Как быть?


То есть вы сами не выставляете IDENTITY_INSERT OFF? Разберайтесь с тем, кто это делает для вас. Потрейсьте что ли, что приходит на сервер.
Help will always be given at Hogwarts to those who ask for it.
Re[5]: LINQ2SQL - как получить IDENTITY после INSERT?
От: Northrop  
Дата: 21.01.11 06:41
Оценка:
Здравствуйте, _FRED_, Вы писали:

_FR>То есть вы сами не выставляете IDENTITY_INSERT OFF? Разберайтесь с тем, кто это делает для вас. Потрейсьте что ли, что приходит на сервер.


В общем, пофиксилось все как только я прописал соотв. атрибуты [Column] для SDocument.
Re[2]: LINQ2SQL - как получить IDENTITY после INSERT?
От: HowardLovekraft  
Дата: 21.01.11 07:00
Оценка:
Здравствуйте, 0K, Вы писали:

0K>Вот за это я и не люблю абстракции там где они не нужны

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