PHP не может печатать элементы массива без использования print_r

Код:

ExampleEntity exampleEntity = dbcontext.ExampleEntities.Attach(new ExampleEntity { Id = 1 });
exampleEntity.ExampleProperty = "abc";
dbcontext.Entry<ExampleEntity>(exampleEntity).Property(ee => ee.ExampleProperty).IsModified = true;
dbcontext.Configuration.ValidateOnSaveEnabled = false;
dbcontext.SaveChanges();

Результат TSQL:

exec sp_executesql N'UPDATE [dbo].[ExampleEntities]
SET [ExampleProperty ] = @0
WHERE ([Id] = @1)
',N'@0 nvarchar(32),@1 bigint',@0='abc',@1=1

Примечание:

Строка IsModified = true необходима. когда вы создаете новый объект ExampleEntity (только с заполненным свойством Id), все остальные свойства имеют свои значения по умолчанию (0, null и т. д.). Если вы хотите обновить БД «значением по умолчанию», изменение не будет обнаружено каркасом сущности, а затем DB не будет обновляться.

В примере:

exampleEntity.ExampleProperty = null;

не будет работать без строки «IsModified = true», поскольку свойство ExampleProperty уже имеет значение null, когда вы создали пустой объект ExampleEntity, вам нужно сказать EF, что этот столбец должен быть обновлен, и это является целью этого линия.

0
задан Nick 28 June 2012 в 15:51
поделиться