Csharp/C#教程:如何加载entity framework预编译的视图分享


如何加载entity framework预编译的视图

我发现通过使用EdmGen.exe工具预编译我的视图,我可以提高应用程序的EdmGen.exe

这一切都很好,但是我或我的大学都无法确定项目实际使用生成的.cs文件的方式。 似乎没有任何关于在任何地方生成的类的引用,所以如何包含它?

任何人都可以对此有所了解,因为它真的很令人沮丧,不知道它是如何工作的!


编辑

我们已经确认EntityViewGenerationAttribute用于标记预编译视图的类类型,但这必须意味着它通过reflection加载。 如果是这样的话,有没有办法明确地将它放在代码中,预编译的视图类应该用于某个视图?

您可以尝试更改生成的代码。 这样就返回了一个不同的视图。 但是如果你不返回视图,我希望EF会失败。

我们的想法是生成的类适用于DBContext中的所有集合。 事实上,如果视图与您拥有的上下文(哈希比较)不匹配,您将收到运行时错误。

例如

上述就是C#学习教程:如何加载entity framework预编译的视图分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

  ///  /// The constructor stores the views for the extents and also the hash values generated based on the metadata and mapping closure and views. ///  public ViewsForBaseEntitySets24F9763E92A9F77E970A08557E1855C7579989F684539A5FB429069F966B9B7B() { this.EdmEntityContainerName = "Ef6Ctx3"; this.StoreEntityContainerName = "CodeFirstDatabase"; this.HashOverMappingClosure = "d7686982aa7cffcf874313838914e93f78d4d7d6d345d19261ef5edc8b4e96dd"; this.HashOverAllExtentViews = "7b8857ee3ee44d13b2479e43c54dbdfb6bc8914e222c7891afcfcd9a29b06b2f"; this.ViewCount = 2; } 

但是对于给定的视图,您可以返回不同的字符串

  ///  /// return view for CodeFirstDatabase.pocotest ///  private System.Collections.Generic.KeyValuePair GetView0() { return new System.Collections.Generic.KeyValuePair("CodeFirstDatabase.pocotest", @" SELECT VALUE -- Constructing pocotest [CodeFirstDatabaseSchema.pocotest](T1.pocotest_Id, T1.pocotest_f1, T1.pocotest_f2, T1.pocotest_f2a, T1.pocotest_f3, T1.pocotest_f5, T1.pocotest_f6b) FROM ( SELECT T.Id AS pocotest_Id, T.f1 AS pocotest_f1, T.f2 AS pocotest_f2, T.f2a AS pocotest_f2a, T.f3 AS pocotest_f3, T.f5 AS pocotest_f5, T.f6b AS pocotest_f6b, True AS _from0 FROM Ef6Ctx3.poco1s AS T ) AS T1"); } 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/954603.html

(0)
上一篇 2021年11月20日
下一篇 2021年11月20日

精彩推荐