gpt4 book ai didi

c# - 使用 DbContext Generator 时有什么方法可以获得函数导入支持吗?

转载 作者:行者123 更新时间:2023-12-02 20:43:59 24 4
gpt4 key购买 nike

我正在尝试使用新的 Entity Framework 4.1 DbContext 生成器,因为它为所有实体生成非常干净的 POCO 类,并且它使用 DbContext API 而不是 ObjectContext API。我遇到的问题是,似乎无法在 DbContext API 中映射“函数导入”(或至少使用生成器)。是否无法通过 DBContext API 使用存储过程进行函数导入,或者我只是做错了什么?

谢谢

更新我认为这是可能的,但我需要弄清楚如何获取 DbContext API 的底层 ObjectContext,至少有人知道如何做到这一点吗?

最佳答案

我继续采用这种方法:

  1. 生成 YourContext.Context1.cs 文件(使用 DbContext 生成器)
  2. 将此属性添加到 YourContext 的分部类中:

    /// <summary>
    /// Retrieve the underlying ObjectContext
    /// </summary>
    public ObjectContext ObjectContext
    {
    get
    {
    return ((IObjectContextAdapter)this).ObjectContext;
    }
    }
  3. 使用函数导入在 .edmx 中设置 SP

  4. 将每个 SP 的函数添加到 YourContext 类中,例如

    public IEnumerable<SomeEntity> GetAllSomeEntities(Nullable<global::System.Int32> accountID)
    {
    ObjectParameter accountIDParameter;
    if (accountID.HasValue)
    {
    accountIDParameter = new ObjectParameter("accountID", accountID);
    }
    else
    {
    accountIDParameter = new ObjectParameter("accountID", typeof(global::System.Int32));
    }

    return this.ObjectContext.ExecuteFunction<SomeEntity>("GetAllSomeEntities", accountIDParameter);
    }

关于c# - 使用 DbContext Generator 时有什么方法可以获得函数导入支持吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5704346/

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