【问题标题】:Using Stored Procedure with Entity Framework where SP Parameters don't match entity在 SP 参数与实体不匹配的实体框架中使用存储过程
【发布时间】:2010-07-06 15:09:23
【问题描述】:

除了其他信息(如姓名、ID、电子邮件等)外,我还有一些存储过程,它接受用户的用户名(记录谁对数据库进行了更改)。在存储过程中,我查找用户 ID 并将其存储在表中。

我遇到的问题是实体表与存储过程的输入不匹配,因此无法映射(或包含)用户的用户名。

是否有一种标准方法可以在存储过程映射中包含非实体属性?

【问题讨论】:

    标签: c# sql entity-framework


    【解决方案1】:

    如果我正确地回答了您的问题(不完全确定我是否正确),那么:

    1. 如果您还没有使用自己的 DataContext 派生类,请这样做。
    2. 在该类中添加一个调用 ExecuteMethodCall 的方法(它是受保护的,因此您只能从派生类型调用它,传入“原始”类型(相关的字符串、整数、日期时间等,而不是实体类的实例) )。
    3. 添加一个方法(可能是您的实体类,尽管它可能存在于其他地方),该方法执行获取用户名的必要工作(无论它是您的班级成员还是来自其他地方的输入等在您的问题中不清楚)并调用 DataContext 派生类的方法。

    希望这很有用,我没有看错。

    【讨论】:

    • 谢谢!这是我需要听到的
    【解决方案2】:

    我创建了一个 XSLT 样式表来从 edmx 中的映射函数导入生成 C# 方法。 This solution 适用于 VS2008。

    【讨论】:

    • 我没有使用函数导入,我正在尝试使用“映射详细信息”,特别是“函数”。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    相关资源
    最近更新 更多