Типы встроенных фреймов

ef-database-first entity-framework entity-framework-6

Вопрос

У меня есть хранимая процедура, которая возвращает несколько наборов результатов. Каждый из них является сложным типом. Первый набор результатов будет содержать список элементов того же сложного типа, что и второй результирующий набор и т. Д. Они несовместимы с конкретными объектами. Например, мои классы POCO должны быть

public partial class Message
{
    public string Subject { get; set; }
    ...
    public List<Recipient> Recipients { get; set; }
}

public partial class Recipient
{
    public string Email { get; set; }
    ...
}

Согласно документации, «Entity и сложные типы теперь могут быть вложены внутри классов» для EF 6. Однако я не могу понять, как создать LIST сложного типа в моем первом сложном типе. Когда я редактирую свой FunctionImport и использую Get Column Information, он возвращает только первый сложный тип. Когда я пытаюсь создать новый комплексный тип, он все еще возвращает только первый сложный тип. Наконец, я создал все сложные типы, которые мне нужны вручную, и попытался добавить сложный тип получателя к сложному типу Message, он позволит только добавить одного получателя. Есть ли что-то особенное, что нужно сделать для гнездования сложных типов? Есть ли там примеры? Я не мог найти ничего, что касалось этого на CodePlex, но я могу просто пропустить его.

Заранее благодарим за вашу помощь!

Принятый ответ

По-моему, вложенность одной классовой декларации на мой взгляд означает другое:

public class A {
    public class B { }
}

В предыдущих версиях EF класс B не мог отображаться ни как сущность, ни сложный тип, в то время как в EF6 это может быть. Это единственное значение вложенности, связанное с этой функцией.

Когда дело доходит до вашего вопроса, вы все равно не можете сопоставить список сложных типов. Если вам нужен список, вам нужно использовать сущности (как родительские, так и дочерние).



Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему