powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Соединение Entitty и такие скобочки { }
7 сообщений из 7, страница 1 из 1
Соединение Entitty и такие скобочки { }
    #37628440
albert t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Трудолюбивый Незнайка немного в растерянности.

Дело вот в чём

Допустим у нас есть

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();

Как быть? Где читать? Суть вопроса кратко - как сделать измениния в модели без запросов с использованием синтаксиса { } и только в нужном месте запулить сохранение изменений в БД?
...
Рейтинг: 0 / 0
Соединение Entitty и такие скобочки { }
    #37628563
last_student
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
albert t,

Код: c#
1.
db.mySet.AddObject(new myTable() {name="myName"});


здесь ты добавляешь объект данным, которые у тебя смапированы и хранятся в коллекции

Код: c#
1.
myTable mt = db.mySet.Where(n => n.name=="myName").FirstOfDefault();


вот тут идет выборка из базы данных

Код: c#
1.
db.SaveChanges();


подтверждаешь, что что бы изменения были сделаны в БД


P.s. что бы получить из базы новую запись, нужно перед этим ее сохранить
...
Рейтинг: 0 / 0
Соединение Entitty и такие скобочки { }
    #37628599
albert t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
last_student,

Не хочу из базы. Хочу из модели. То есть вначале сделать в коллекции в модели, произвести необходимые действия, например добавить другие связанные коллекции, а потом уже всё это сохранить в БД.

Нужен какой нибудь метод типа attach
...
Рейтинг: 0 / 0
Соединение Entitty и такие скобочки { }
    #37629981
albert t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
albert t,

скобочки не при чём
...
Рейтинг: 0 / 0
Соединение Entitty и такие скобочки { }
    #37629992
albert t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
albert t,

насколько я понял, вопрос уходит в глубины паралелелизма и управляемых блокировок. так что снимается.
...
Рейтинг: 0 / 0
Соединение Entitty и такие скобочки { }
    #37629998
albert t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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? Искать по имени значит нарушать целостность. Мы не можем быть уверены что там один Томато, а нам нужен только тот который мы только что вставили.

Как быть?
...
Рейтинг: 0 / 0
Соединение Entitty и такие скобочки { }
    #37630004
albert t
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
albert t,

Всё, разобрался. Оказывается в той ссылке после SaveChanges будет уже не 0 а реальный id из Базы.

те

Vegetables veg = new Vegetables() {nameVegetables="Tomato"};

db.Vegetables.AddObject(veg);

// тут ещё veg.idVegetables = 0

db.SaveCganges;

а уже тут veg.idVegetables = id из базы, например 2315.

То есть анонимные объекты исключаются из использования в случае необходимости связанных изменений в модели.

Хотя конечно количество запросов к Базе с таким подходом значительно увеличивается. Если сравнивать с сохранёнными процедурами, например.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Соединение Entitty и такие скобочки { }
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]