Код EF сначала 4.1 xml XElement - PullRequest
       13

Код EF сначала 4.1 xml XElement

0 голосов
/ 08 октября 2011

Как мне сопоставить столбец таблицы xml со свойством XElement в объекте POCO.

Есть ли способ отобразить его, используя сложный тип, или снабдить инфраструктуру EF какой-либо функцией преобразования, чтобы я мог использовать XElement в качестве типа свойства и использовать его в качестве xml в базе данных.

Я надеюсь, что беглый API имеет какой-то способ отобразить это, но мой поиск не дал результатов, и кажется, что вопрос не так часто, как я бы подумал.

Спасибо.

1 Ответ

4 голосов
/ 08 октября 2011

Нет, это не поддерживается, и fluen-API вам тоже не поможет.EF также не имеет ничего общего с функциями преобразования (я бы назвал это просто отображением типов).

То, что вы можете попробовать, - это обходной путь, обычно используемый, когда необходимо преобразование - вам нужно два свойства.Один будет строкой и сопоставлен с вашим XML-столбцом (я не пробовал, но я надеюсь, что он будет работать), а второй не будет отображен XElement.Второе свойство будет внутренне преобразовано из и в первое строковое свойство.Что-то вроде:

public class YourEntity
{
    public string MappedProperty { get; set; }

    public XElmenet NotMappedProperty 
    {
        get 
        {
            return XElement.Parse(MappedProperty);
        }
        set
        {
            // Some validation
            MappedProperty = value.ToString();
        }
    }
}

Это нехорошо, и это не делает интерфейс вашей сущности приятным, но EF не предоставляет ничего лучше в данный момент.

...