Променете типа данни на свойството с шаблон T4, когато първо използвате база данни на Entity Framework

Работя върху нов проект, но неговата база данни вече съществува, така че използвам първия подход на EF база данни.

Имам свойство с име WorkflowStatus, което съществува във всички таблици и неговият тип данни е int, но трябва да съпоставя неговия тип към WorkflowStatusEnum вместо Int32

Така че модифицирах шаблона T4, за да променя типа на генерираното свойство и той работи както искам, но сега системата не работи поради несъответствие между типа на свойство в модела и генерираното свойство.

Трябва да знам дали има лесен начин да променя типа данни на свойството в модела, така че системата да работи добре, или трябва да го променя ръчно на всички обекти в модела.


person Mahdy    schedule 08.03.2014    source източник


Отговори (1)


Създайте IWorkflowStatus интерфейс само с едно свойство в него - WorkflowStatus.

В t4 добавете IWorkflowStatus към подписа на всеки обект, който има свойство WorkflowStatus, т.е.

public partial class Order: EntityObject, IWorkflowStatus

След това създайте ExtentionMethod за IWorkflowStatus, за да работите с enum по начина, по който искате.

public static void SetStatus(this IWorkflowStatus entity, WorkflowStatus status)
public static WorkflowStatus GetStatus(this IWorkflowStatus entity)

Това е може би най-лесното решение.

Друг е да генерирате въведено свойство във всеки обект с помощта на T4, но да оставите и целочисленото свойство.

person Andrew    schedule 10.04.2014