1

我有一个返回多个结果集的存储过程。每一个都是复杂的类型。第一个结果集将包含与第二个结果集具有相同复杂类型的项目列表,等等。这些与特定实体没有明确的关联。例如,我的 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; }
    ...
}

根据文档,EF 6 的“实体和复杂类型现在可以嵌套在类中”。但是,我无法弄清楚如何在我的第一个复杂类型中创建复杂类型的 LIST。当我编辑 FunctionImport 并使用 Get Column Information 时,它只返回第一个复杂类型。当我尝试创建新的复杂类型时,它仍然只返回第一个复杂类型。最后,我手动创建了所有需要的复杂类型,并尝试将 Recipient 复杂类型添加到 Message 复杂类型,它只允许添加单个 Recipient。嵌套复杂类型需要做一些特别的事情吗?有没有例子?我在 CodePlex 上找不到任何解决此问题的内容,但我可能只是想念它。

提前感谢您的所有帮助!

4

1 回答 1

3

在我看来,嵌套意味着将一个类声明放入另一个类声明中:

public class A {
    public class B { }
}

在早期版本的 EF 中,B 类既不能映射为实体也不能映射为复杂类型,而在 EF6 中可以。这是唯一与此功能相关的嵌套含义。

当涉及到您的问题时,您仍然无法映射复杂类型的列表。如果您想要一个列表,您需要使用实体(作为父级和子级)。

于 2013-10-29T15:20:57.477 回答