Вопрос

Объявить переменную типа Guid со значением по умолчанию

Добрый день!

Объявление дробных переменных происходит так

decimal sumTotalAmount = 0; 

Подскажите, пожалуйста, как быть с переменной типа Guid ? ( значения ' ', null не подошли)

Guid currencyId = ?

Нравится

7 комментариев

Попробуйте

var currencyId = null;

либо = '{00000000-0000-0000-0000-000000000000}' (наверное не совсем то что нужно).

Собственно а для чего заводить переменную и писать в неё null?

 

Guid.Empty ?

Да, для записи в переменную GUID-а, состоящего из нулей, нужно присваивать Guid.Empty. Только нужно учитывать, что это не аналог null, и при попытке записать его в справочное поле будет ошибка, поскольку в справочнике такой записи нет.

В поле объекта пишут так: Entity.SetColumnValue("AccountId", null);

Спасибо.

Попробую описать проблему, связанную с гуид-полями

Есть скрипт

decimal sumTotalAmount = 0; 

Guid currencyId =  Guid.Empty;



var esq = new EntitySchemaQuery(UserConnection.EntitySchemaManager, "UsrProductInActivity");

var totalAmountColumn = esq.AddColumn("UsrPrice");

var myCurrencyColumn = esq.AddColumn("UsrCurrency");

var activityId = this.Entity.GetTypedColumnValue<Guid>("UsrActivityId");

esq.Filters.Add(esq.CreateFilterWithParameters(FilterComparisonType.Equal, "UsrActivity", activityId));

var entityCollection = esq.GetEntityCollection(this.UserConnection);

if (entityCollection.Count > 0) {

    foreach(var entity in entityCollection) {

    sumTotalAmount += entity.GetTypedColumnValue<decimal>(totalAmountColumn.Name);

              currencyId= entity.GetTypedColumnValue<Guid>(myCurrencyColumn.Name);

    }

}

var update = new Update(context.UserConnection, "Activity")

    .Set("UsrSumCurrency",Column.Parameter(sumTotalAmount))

    .Set("UsrSumRub",Column.Parameter(sumTotalAmountRub))

    .Set("UsrSumEuro",Column.Parameter(sumTotalAmountEuro))

    //.Set("UsrCurrencyId",Column.Parameter(currencyId))

    .Where("Id").IsEqual(Column.Parameter(activityId)) as Update;

update.Execute();



return true;

 

Как только добавляешь строчку, выделенную жирным. 

Возникает ошибка - не найден элемент коллекции с именем UsrCurrency

Поле такое точно есть UsrCurrency (в базе соответственно UsrCurrencyId)

Это значит, что в базе нет поля с названием UsrCurrency. Если нужно с Id, то так и пишите, аналогично UsrActivityId.

Татаровская Дарья пишет:

Возникает ошибка - не найден элемент коллекции с именем UsrCurrency

попробуйте 

var myCurrencyColumn = esq.AddColumn("UsrCurrency.Id");

Спасибо!

Показать все комментарии