1

Я использую MVC Scaffolding + Ef6 в проекте Web applicatioon в VS 2013.Scaffolding Не обнаруживая Complext Тип недвижимости в Entity

классы домена (Entites) и контекст (DbContext) находятся в двух отдельных проектов, на которые ссылается веб-проект.

У меня есть класс пациента, который обладает сложным свойством, следующим за ним.

public class Patient 
{ 
    public int PatientId { get; set; } 

    // Some properties 

    // Complex property 
    public MyComplexType Complex { get; set; } 
} 

public class MyComplexType 
{ 
    public SomeType Property1 { get; set; } 
    public SomeOtherType Property2 { get; set; } 
} 

Проблема:

MVC подмости двигатель не обнаруживает комплексное свойство в Patient классе и сгенерированные представления не содержат поля, чтобы показать или изменить это свойство. Я попытался украсить класс MyComplexType с атрибутом ComplexType, но он не сработал.

Что можно сделать?

ответ

0

Согласно this post и книге Джулии Лерман Программирование сущности Framework: первый код, сложные типы могут содержать только примитивные свойства.

Обычные Составной тип Правила

  1. Сложные типы не имеют ключевое свойство.
  2. Сложные типы могут содержать только примитивные свойства.
  3. При использовании в качестве свойства в другом классе, свойство должно представлять собой один экземпляр . Это не может быть тип коллекции.

В моем случае я использую нетрадиционный сложный тип, так что я должен был украшен MyComplexType класса с ComplexType атрибутом тоже.

public class Patient 
{ 
    public int PatientId { get; set; } 

    // Some properties 

    // Complex property 
    public MyComplexType Complex { get; set; } 
} 

[ComplexType] 
public class MyComplexType 
{ 
    public SomeType Property1 { get; set; } 
    public SomeOtherType Property2 { get; set; } 
} 


public class SomeType 
{ 
    // primitive properties here 
} 

public class SomeOtherType 
{ 
    // primitive properties here 
} 

НТН

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

  • Нет связанных вопросов^_^