gpt4 book ai didi

asp.net - Entity Framework 不会显示存储过程

转载 作者:行者123 更新时间:2023-12-02 09:32:34 25 4
gpt4 key购买 nike

我整个早上都在搞乱这个问题,但找不到答案。我正在尝试使用 EF 来引用存储过程,但无论我如何尝试,我都无法让它显示在模型浏览器中。

我已使用以下步骤尝试将程序放入模式中:

  1. 向实体模型添加过程

  2. 右键单击模型并选择添加新 --> 函数导入

  3. 为其命名并选择我的程序

  4. 生成一个新的复杂集合(我也尝试过使用实体,但都不起作用)

  5. 单击“确定”

我已经这样做了很多次,并且我可以在模型中的“function Imports”文件夹中看到该函数,但它从未显示在模型中,所以我无法引用它。

我发现我可以通过执行以下操作直接引用存储过程(无需导入):

    DBEntities db = new DBEntities();
var test = db.gsp_GetGroups();

但是,我无法将其转换为 IQueryable<T>没有大的解决方法。

有人知道我缺少哪些步骤才能正确添加此内容吗?

谢谢

附注VS 2012,asp.net 4.0

最佳答案

验证您用于生成 EF 模型的 SQL 登录是否有权执行您尝试导入的存储过程。

  1. 转到您的 App.config 并查找 connectionStrings条目(通常在底部)。如果您有超过 1 个连接字符串,则您需要的连接字符串就是您的上下文使用的连接字符串。
    • 转到 edmx 文件并深入查找实体类。
    • 例如,如果您有 MyDbModel.edmx ,然后在其下您将有 MyDbModel.Context.tt其中又将包含 MyDbModel.Context.cs .
    • MyDbModel.Context.cs文件中,您将拥有一个继承自 DbContext 的类构造函数将调用 base("name=<your connection string name>")
    • <your connection string name>是您在 app.config 中寻找的那个。
  2. 您的连接字符串显示用户(集成安全性意味着登录的 AD 用户。只有当使用您的程序的每个人都具有正确的数据库访问权限时,这才有效。这在生产环境中可能是一个危险的假设)
  3. 转到 SQL Management Studio 并将此存储过程添加到用户的“Securables”

关于asp.net - Entity Framework 不会显示存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17598070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com