【发布时间】:2014-03-13 03:37:20
【问题描述】:
是否可以在 EF6 Code First 中调用 TVF?
我首先使用 EF6 数据库开始了一个新项目,EF 能够将 TVF 导入模型并调用它就好了。
但是对于没有 RI 的大型只读数据库,更新模型变得非常耗时且存在问题,我一直在处理这些问题。
所以我首先尝试使用 Power Tools 逆向工程工具转换为 EF6 代码以生成上下文和模型类。
很遗憾,逆向工程工具没有导入 TVF。
接下来,我尝试将 DBFunction 从旧的 Database First DbContext 复制到新的 Code First DbContext,但这给了我一个错误,即我的 TVF: “无法解析为有效的类型或函数”。
是否可以为 TVF 创建代码优先的 Fluent 映射?
如果没有,是否有解决方法?
我想我可以使用 SP 而不是 TVF,但希望我可以主要使用 TVF 来处理我遇到的有问题的数据库。
感谢您提供任何解决方法
【问题讨论】:
-
我不这么认为,至少这就是我仍然首先使用模型的原因,但是要解决大型模型的问题,不要将所有内容导入一个模型但具有较小的域特定的代理/客户
-
感谢 zahorak 的想法,如果我找不到代码的解决方法,我可能会先切换回使用数据库的方法。我的意图是使用逆向工程工具仅导入我需要的 TVF,并仅使用它们来访问我无法从代码优先上下文更改的大而丑陋的数据库。
-
TheVedge,那篇文章谈到了使用 EDMX 模型的 Database First,我需要 Code First 中的它,这意味着没有 EDMX 模型,而是使用 Fluent API 映射的 DbContext。
-
@Patrick 对不起,读得太快了。目前不可能,推迟到EF6之后:data.uservoice.com/forums/…
标签: entity-framework entity-framework-6