Entity Framework 4: Создать новый объект, сохранить его, без ошибок и без вставленной записи? - PullRequest
0 голосов
/ 14 ноября 2010

РЕДАКТИРОВАТЬ: еще лучше, я делаю это без ошибок и без вставленных записей:

var myTopLevelEntity = _DC.TopLevelEntity.Where( p => p.ID = 1).First();
var newEntity = new Entity();
newEntity.pocofield = ""; // set all primary keys and poco fields
newEntity.TopLevelEntity = myTopLevelEntity;
_DC.Entitys.Add( newEntity);

Я проверил профилировщик SQL-сервера. За это время не было никаких команд, кроме выбора.

(КОНЕЦ РЕДАКТИРОВАНИЯ)

У меня есть набор сущностей для добавления сразу, все новые. Они зависят от записи в другой таблице. Я делаю следующее:

var myTopLevelEntity = _DC.TopLevelEntity.Where( p => p.ID = 1).First();

NewEntity имеет иерархию:

newEntity.A[].pocofields
newEntity.B[].pocofields
newEntity.C[].pocofields
newEntity.C[].D[].pocofields

Итак, я делаю это

var newEntity = new Entity();
newEntity.pocofield = ""; // various poco fields, set all keys

var A = new AEntity();
A.pocofield = ""; // various poco fields, set all keys
newEntity.As.Add( A);

var B = new BEntity();
B.pocofield = ""; // various pocos, set all keys
newEntity.Bs.Add( B);

var C = new CEntity();
C.pocofield = "";  // various, set all keys
var D = new DEntity();
D.pocofield = ""; // various, set all keys
C.Ds.Add( D);
newEntity.Cs.Add( C);

newEntity.TopLevelEntitys.Add( myTopLevelEntity);
_DC.Entitys.Add( newEntity);

На данный момент ошибок не возникает (у меня нет try/catch нигде). В базе данных также нет записей. Что я делаю неправильно?

1 Ответ

4 голосов
/ 14 ноября 2010

Я думаю, что вы забыли позвонить _DC.SaveChanges

...