|
Соединение Entitty и такие скобочки { }
|
|||
---|---|---|---|
#18+
Трудолюбивый Незнайка немного в растерянности. Дело вот в чём Допустим у нас есть myEntity db = new myEntity(); //потом мы делаем что нибудь такое bool isDo = true; if (isDo) { db.mySet.AddObject(new myTable() {name="myName"}); //то вот тут почему то не работает myTable mt = db.mySet.Where(n => n.name=="myName").FirstOfDefault(); //и действительно там нет нового экземпляра этой сущности. А вот если добавить db.SaveChanges(); сразу то он появится. Но хотелось бы собрать пакет обновлений а потом отображать его в базу. } db.SaveChanges(); Как быть? Где читать? Суть вопроса кратко - как сделать измениния в модели без запросов с использованием синтаксиса { } и только в нужном месте запулить сохранение изменений в БД? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2012, 11:13 |
|
Соединение Entitty и такие скобочки { }
|
|||
---|---|---|---|
#18+
albert t, Код: c# 1.
здесь ты добавляешь объект данным, которые у тебя смапированы и хранятся в коллекции Код: c# 1.
вот тут идет выборка из базы данных Код: c# 1.
подтверждаешь, что что бы изменения были сделаны в БД P.s. что бы получить из базы новую запись, нужно перед этим ее сохранить ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2012, 12:26 |
|
Соединение Entitty и такие скобочки { }
|
|||
---|---|---|---|
#18+
last_student, Не хочу из базы. Хочу из модели. То есть вначале сделать в коллекции в модели, произвести необходимые действия, например добавить другие связанные коллекции, а потом уже всё это сохранить в БД. Нужен какой нибудь метод типа attach ... |
|||
:
Нравится:
Не нравится:
|
|||
24.01.2012, 12:46 |
|
Соединение Entitty и такие скобочки { }
|
|||
---|---|---|---|
#18+
albert t, скобочки не при чём ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2012, 00:35 |
|
Соединение Entitty и такие скобочки { }
|
|||
---|---|---|---|
#18+
albert t, насколько я понял, вопрос уходит в глубины паралелелизма и управляемых блокировок. так что снимается. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2012, 00:51 |
|
Соединение Entitty и такие скобочки { }
|
|||
---|---|---|---|
#18+
albert t, поменяю вопрос - как точно получить ключ, например Id только что вставленной записи. Допустим есть таблица CREATE TABLE [dbo].[Vegetables]( [idVegetables] [int] IDENTITY(1,1) NOT NULL, [nameVegetables] [nvarchar](50) NOT NULL) Соответственно когда мы сделаем db.Vegetables.AddObject(new Vegetables() {nameVegetables="Tomato"}); db.SaveCganges; то как мы сможем обратиться именно к этой записи? Если бы вставка была сделана в сохранённой процедуре в SQL то у нас была бы таблица [inserted] и из неё мы могли бы достать наш idVegetables. Как быть в случае с Entity? Искать по имени значит нарушать целостность. Мы не можем быть уверены что там один Томато, а нам нужен только тот который мы только что вставили. Как быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2012, 01:09 |
|
Соединение Entitty и такие скобочки { }
|
|||
---|---|---|---|
#18+
albert t, Всё, разобрался. Оказывается в той ссылке после SaveChanges будет уже не 0 а реальный id из Базы. те Vegetables veg = new Vegetables() {nameVegetables="Tomato"}; db.Vegetables.AddObject(veg); // тут ещё veg.idVegetables = 0 db.SaveCganges; а уже тут veg.idVegetables = id из базы, например 2315. То есть анонимные объекты исключаются из использования в случае необходимости связанных изменений в модели. Хотя конечно количество запросов к Базе с таким подходом значительно увеличивается. Если сравнивать с сохранёнными процедурами, например. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.01.2012, 01:27 |
|
|
start [/forum/topic.php?fid=17&fpage=37&tid=1350468]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
39ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 137ms |
0 / 0 |