2010-01-07 4 views
2

В .NET 3.5SP1,Использование столбца XML с ADO.NET Entity Framework

У меня есть таблица в 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 типа, но я не могу найти способ сделать рамки сущности понять мой пользовательский тип ,

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

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

ответ

2

Для отображаемого имущества вы должны использовать string.

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

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

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

+0

Я использовал вашу идею, и я расширился от нее. Спасибо. –

Смежные вопросы