2014-01-18 2 views
3

У меня есть «модель struct», которая является внутренней строкой, но используется в некоторой степени аналогичной GUID.Структурная структура структуры Entity Framework без свойств модели

public struct Token { 

    private string _value; 

    private Token(Guid uuid) { 
     _value = Token.FromGuid(uuid); 
    } 

    public static Token FromGuid(Guid uuid) { 
     // perform 'transformation' 
     // stuff 
     // return... 
    } 

    // other static methods to create a token... 

} 

Как можно сопоставить этот объект с помощью Entity Framework 6 Код Первый? Я знаю, что структуры не поддерживаются, но сложный тип также не применяется, поскольку class не содержит никаких свойств.

+0

карту в каком смысле. Покажите желаемое использование. Вы хотите, чтобы Poco обладал свойством этого типа? Что вы уже пробовали? –

+0

«Вы хотите, чтобы Poco обладал таким свойством?» В точку. Мне нужен «глобально уникальный» идентификатор, который является случайным, как GUID, но дружественным по URL. – Acrotygma

+0

и почему бы не использовать общедоступную строку set/get и использовать вашу структуру внутри? И почему вы отказались от сложного типа? –

ответ

3

Структуры не поддерживаются EF-типом. См. ef supported primitives

Вместо этого вам потребуется использовать сложный тип.

  • modelBuilder.ComplexType<Details>();
    или
  • Аннотация данных [ComplexType]

Но рассмотрим вариант, используя строку и управляющий общественным получить/установить соответственно