Мы используем Сервис данных WCF, основанный на модели Entity Framework для нашего приложения.
Для этого нам нужно добавить таблицу со столбцом типа HierarchyId
. Когда я добавляю эту таблицу в файл EDMX, столбец HierarchId
не появляется в файле класса.
Что я должен сделать, чтобы использовать HierarchyID
? Я читал, что Entity Framework не поддерживает HierarchyID
, так как я могу этого добиться?
Вы всегда можете преобразовать HierarchyId
в его строковое представление - что-то вроде /1/3/4/1
- и отправить эту строку через службу данных WCF.
Обновление: если вы добавите этот вычисленный постоянный столбец в таблицу SQL Server, этот новый столбец обязательно должен появиться в вашей модели EF, и вы сможете использовать его для отправки его обратно через службы данных WCF и WCF:
ALTER TABLE dbo.YourTable
ADD HierarchyString AS (your hierarchyID field).ToString() PERSISTED
Обновление № 2: читайте документы ! Вы можете разобрать строку типа /1/3/4/1
HierarchyId
тип HierarchyId
- для этого используйте либо HierarchyId::Parse(string)
либо обычный CAST(string as HierarchyId)
.
Если вы используете вычисляемый столбец, просто имейте в виду, что вам также понадобится аннотация данных DatabaseGenerated для вашего свойства, например:
[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
public string HierarchyString { get; set; }
Проверьте эту статью для получения дополнительной информации: Entity Framework Code First Computed Properties