0

目标

我想为我的复杂类型获取它们各自的列。

问题

这个答案不同,marc_s在第(4) (四)部分中,我的复杂类型没有分配给他的数据库列。

举例说明:

例子

在你问之前,我的函数导入是正确的:

示例 2

那么,我该怎么办?

更新 1

我试图手动将属性添加到我的复杂类型中,但这是最好的方法吗?

更新 2

我想将标量属性自动添加到我的复杂类型中——就​​像我之前发布的示例一样。

4

2 回答 2

2

@chiefGui 我不太了解您的问题,但是当您单击“获取列信息”按钮时,似乎没有任何列。

如果是这个问题,您可以通过在程序中添加命令来解决它。

输入这样的命令。

ALTER PROC ProcName  /* ([,parameters] ) */
AS
BEGIN
    /* this command you make the difference */
    SET FMTONLY OFF

    /* other code here */
END

将其放在程序内部的第一行。从 EDMX 中删除该过程,再次添加并再次尝试导入。您将获得程序返回的所有列。所以 de 一步一步地运作良好。

如果这不是您想要的答案,请添加评论,以便我为您提供帮助。

已编辑

发生这种情况是因为 EF 尝试获取列标题而不获取结果数据。如果您的程序具有高度复杂性,则 EF 将只能获取信息,前提是您的代码设置为在运行前检查结构。

于 2013-06-13T14:09:20.123 回答
0

您是否注意到字段名称旁边的“不支持”标题?这是因为 MySql 连接器不能从存储过程结果集中读取数据类型。这是 MySQL 网络连接器中的一个错误,因为它永远存在。解决方法是创建一个具有相同两列的表(在您的示例中),在将存储过程导入 EDMX 之前导入该表,当您导入存储过程时,在“添加函数导入”对话框中,选择“实体”选项而不是复杂类型,并映射到该表。

于 2017-04-09T02:37:33.010 回答