Использование столбца xml с ADO.NET Entity Framework - PullRequest
2 голосов
/ 08 января 2010

В .NET 3.5sp1,

У меня есть таблица в Sql Server, которая определяется примерно так:

CREATE TABLE Employee(
 EmployeeId [int] IDENTITY(1,1) NOT NULL,
 UserName varchar(128) NOT NULL,
 [Name] nvarchar(200) NOT NULL,
 Address xml NULL,
    ...)

Я сопоставляю эту таблицу с ADO.NET Entity Framework. Моя проблема заключается в том, что столбец XML сопоставлен с типом данных строки. Хотя это ожидаемое поведение, я хотел бы указать свой собственный тип.

Я пытался создать класс

public class Address : IXmlSerializable { ... }

и попытался заменить тип данных string адресного столбца на мой собственный тип Address, но я не могу найти способ, чтобы структура сущностей поняла мой пользовательский тип.

Я читал о сложном типе , но он говорит, что само значение не может быть нулевым, и в моем случае оно может быть нулевым.

Возможно ли это и как?

1 Ответ

2 голосов
/ 08 января 2010

Вы должны использовать string для сопоставленного свойства.

Однако вы можете добавить пользовательское (дополнительное) свойство в частичный класс, который преобразует строку в ваш пользовательский тип. Так что вы можете сделать что-то вроде:

public partial class Employee
{
    public Address EmployeeAddress 
    {
        get
        {
            return new Address(this.MappedAddressProperty);
        }
    }
}

Вы не можете использовать эти пользовательские свойства в LINQ to Entities.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...