【问题标题】:What configuration is required to use Linqpad with Epicor 10?将 Linqpad 与 Epicor 10 一起使用需要什么配置?
【发布时间】:2015-01-22 19:20:18
【问题描述】:

我收到了错误:

Schema specified is not valid. Errors: (0,0) : error 0175: The specified store provider cannot be found in the configuration, or is not valid.

到目前为止,我已经对其进行了调试,以寻找一个名为“EpiProvider”的提供程序字符串,但我无法弄清楚缺少什么。我可以在左侧加载实体列表(使用 ObjectContext 连接)。

【问题讨论】:

    标签: linqpad epicorerp


    【解决方案1】:

    当我第一次尝试时,它不起作用。我认为这与 Epicor 在将扩展 UD 表附加到普通表时创建的 [dbo] 模式中的视图有关。

    我决定尝试一下,因为我现在对它有了更多的了解,并且发现它工作得相当好,但表结构太大,可能会有点误导。例如,我通过尝试提取单个部分记录直接进入测试它

    from p in Part 
    where p.Company == "foo" && p.PartNum == "1234567890"
    select p
    

    这会引发错误“InvalidOperationException:成员 'System.Data.Linq.Binary UD_SysRevID' 和 'System.Data.Linq.Binary SysRevID' 都标记为行版本。”因为 LingPad 显然不喜欢有多个 Row Version 列的表,这就是 Epicor 在一个视图中合并 Part 和 Part_ud 中的列时发生的情况。

    自从创建视图 [dbo].[Part] 后,为了让事情变得更有趣,LinqPad 在 [Erp].[Part] Erp_Part 中调用实际的 Part 表,这让我永远注意到了,因为我使用的所有表都是几乎在 C 或 P 中,中间的所有东西都会滚动浏览。我什至没有想到要查看,因为我必须扩展 Schema 才能进入列表。

    好消息是这很好用。

    from e in Erp_Part
    where e.Company == "foo" && e.PartNum == "1234567890"
    from u in Part_UD
    where u.ForeignSysRowID == e.SysRowID 
    select new { e, u }
    

    狩猎愉快!

    【讨论】:

    • 我终于开始测试您的帖子并弄清楚您对表名的含义。它运行时不会抛出该错误,但如果我随后转储查询(使用 C# 语句),它会抛出与以前相同的异常。
    • 你在运行什么查询?
    • var p = from e in this.Erp_CashHeads where e.Company == "foo" && e.ReverseDate == null from u in this.CashHead_UDs where u.ForeignSysRowID == e.SysRowID select new { 欧盟 }; p.转储(); // 用这条线炸毁了
    • 这很奇怪。运行您的代码作为语句没有错误。我们还没有使用 CashHead,所以我使用了 Part。是不是同样的错误?
    猜你喜欢
    • 1970-01-01
    • 2013-02-28
    • 1970-01-01
    • 2021-09-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-12
    相关资源
    最近更新 更多