【问题标题】:entity framework 3.5 and stored procedure result mapping实体框架3.5和存储过程结果映射
【发布时间】:2011-02-16 03:54:28
【问题描述】:

在 Visual Studio 2010 中使用 EF3.5(此时无法升级到 EF4 - 不要问!)。

想要创建一个存储过程,从一些相关表中聚合一些字段,并将存储过程的结果具体化为自定义“实体”。此自定义实体将是“只读的”。我设置了自定义实体、存储过程和函数导入。当我构建我的实体项目时,我得到以下信息:

错误 35 错误 3027:
没有为以下指定映射 实体集/关联集 - 我的自定义实体集

它看起来想要为我的自定义实体定义一个表映射,但是在这种情况下我不会有一个,因为它聚合了多个表中的数据(并过滤掉了一些不必要的数据)。

是否可以将自定义实体映射到存储过程?是否有可能以“从数据库更新模型”功能不会破坏自定义实体或存储的过程/函数导入映射的方式这样做?

TIA!

【问题讨论】:

    标签: entity-framework stored-procedures entity


    【解决方案1】:

    我们过去常常通过在数据库中创建一个视图来解决这个问题 - 如果您映射到存储过程,该视图实际上永远不会被使用,但它确实可以在实体中自动创建正确的映射。

    通常,对于相当直接的过程,您也可以复制/粘贴 sql 以生成视图 - 节省一些时间。

    【讨论】:

    • 是的,到目前为止,这也是我们一直在使用的解决方法。想知道是否没有更多“支持”的东西。例如,这看起来很有希望,但是,我无法让它为我工作:dotnet.dzone.com/news/mapping-stored-procedure
    • 我们在查看视图之前对 xml 文件进行了黑客攻击,这是一场噩梦,因为当我们想从数据库更新时,内容不断被删除,所以我们切换到视图。我只能说祝你好运,尽快迁移到 EF4,这样使用起来会容易得多。
    • 在我上面提到的文章中,尝试在 中定义 元素时出现错误。但是,这似乎表明它是有效的:msdn.microsoft.com/en-us/library/bb738450(v=VS.90).aspx。我也可能会采用基于“视图”的方法。
    猜你喜欢
    • 1970-01-01
    • 2011-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多