Объявить переменную типа Guid со значением по умолчанию
Добрый день!
Объявление дробных переменных происходит так
decimal sumTotalAmount = 0;
Подскажите, пожалуйста, как быть с переменной типа Guid ? ( значения ' ', null не подошли)
Guid currencyId = ?
Нравится
Попробуйте
var currencyId = null;
либо = '{00000000-0000-0000-0000-000000000000}' (наверное не совсем то что нужно).
Собственно а для чего заводить переменную и писать в неё null?
Да, для записи в переменную 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");