Удаление столбцов из хранилища таблиц Azure

Вот фрагмент кода, который я использую для чтения сущностей из хранилища таблиц:

public void OnReadingEntity(object sender, ReadingWritingEntityEventArgs args)
    {
        XNamespace AtomNamespace = "http://www.w3.org/2005/Atom";
        XNamespace AstoriaMetadataNamespace = "http://schemas.microsoft.com/ado/2007/08/dataservices/metadata";

        GenericEntity entity = args.Entity as GenericEntity;
        if (entity == null)
        {
            return;
        }

        // read each property, type and value in the payload   
        var properties = args.Entity.GetType().GetProperties();
        var q = from p in args.Data.Element(AtomNamespace + "content")
                                .Element(AstoriaMetadataNamespace + "properties")
                                .Elements()
                where properties.All(pp => pp.Name != p.Name.LocalName)
                select new
                {
                    Name = UnescapePropertyName(p.Name.LocalName),
                    IsNull = string.Equals("true", p.Attribute(AstoriaMetadataNamespace + "null") == null 
                        ? null 
                        : p.Attribute(AstoriaMetadataNamespace + "null").Value, StringComparison.OrdinalIgnoreCase),
                    TypeName = p.Attribute(AstoriaMetadataNamespace + "type") == null 
                        ? null 
                        : p.Attribute(AstoriaMetadataNamespace + "type").Value,
                    p.Value
                };

        foreach (var dp in q)
        {
            entity[dp.Name] = GetTypedEdmValue(dp.TypeName, dp.Value, dp.IsNull);
        }
    }

К сожалению, этот фрагмент кода вернет некоторые свойства, которые существовали в объектах, которые я удалил.

Может кто-нибудь объяснить, почему это так?


person Calin    schedule 25.05.2012    source источник
comment
См. также: stackoverflow.com /вопросы/35688513/   -  person dreftymac    schedule 31.01.2020


Ответы (1)


В хранилище таблиц Azure нет столбцов, к которым вы привыкли в реляционных базах данных. Каждая строка может иметь совершенно разные свойства, кроме обязательных столбцов.

Когда вы говорите «все еще отображается вверх», я предполагаю, что это просто способ, которым инструмент, который вы используете, представляет данные, которые заставляют вас думать, что это похоже на реляционную таблицу.

См. http://msdn.microsoft.com/en-us/magazine/ff796231.aspx за хорошие технические знания.

person Todd Whitehead    schedule 25.05.2012
comment
Привет, Тодд, ты совершенно прав, я написал пост в спешке, отредактировал, чтобы он имел больше смысла. - person Calin; 25.05.2012
comment
Ах, это имеет больше смысла. Вы работаете с эмулятором хранилища или с онлайн-сервисом? Если это эмулятор, вы можете столкнуться с проблемой, описанной здесь stackoverflow.com/questions/3076499/ - person Todd Whitehead; 26.05.2012