带有 Sybase ASE 15.5 的 LINQToEntities

Posted

技术标签:

【中文标题】带有 Sybase ASE 15.5 的 LINQToEntities【英文标题】:LINQToEntities with Sybase ASE 15.5 【发布时间】:2011-10-06 18:04:52 【问题描述】:

在过去的几天里,我一直在尝试使用实体框架和 LINQ 2 实体,它们在 SQL Server 上工作得非常好(正如我所期望的那样),但问题是我必须使用 Sybase ASE 15.5。

我说“问题”是因为以下原因:

    生成/更新模型通常需要很长时间 有时它会生成一个错误,指出字段 已经在元数据集合中(我认为这与命名约束或具有关系的表中相同的字段名称有关(FK 是最常见的) 我制作了一个简单的模型,在该模型中生成/更新不会有问题,但问题是有时(取决于查询)LINQ To Entities 生成的 T-SQL 会在 ASE 中引发一些错误

我使用的是 Sybase SDK 版本 15.5.0.1000,此 SDK 中的 ADO.NET 提供程序是否运行良好(例如,我做错了什么)?如果没有,是否有更新的?我还需要安装其他什么东西来解决这些问题(比如更新的 SDK、一些 dll 或一些用于翻译的方言)? (我知道有一个新的 Sybase ASE -15.7- 但它是否带有一个新的 SDK?可能并不重要,因为我不确定 IT 总监和 CIO 现在是否会批准更改)

我也尝试过 Data Direct 提供程序,但它在尝试生成模型时卡住了,BLToolkit 也是,从我在他们的网站上阅读的内容来看,依赖于供应商数据提供程序(至少对于非 Microsoft DB) .我真的很喜欢与 Entity Framework 一起工作的东西,但现在只需要与 ASE 和 ASE CE 一起工作的东西(还没有尝试过 NHibernate,主要是因为乍一看它似乎涉及太多的手动工作,并且阅读ASE 有一些问题)

提前感谢您提供的任何帮助。

【问题讨论】:

【参考方案1】:

一整周都没有评论,我自己来回答。

看来SDK确实有问题,显然模型生成创建了一个执行的T-SQL怪物,因此延迟很大。它确实存在一些类似命名但仅在 ASE 中的约束问题,在 ASE CE 中它似乎没有任何问题。我找不到任何资源,比如 ASE 特有的方言,所以我猜他们的驱动程序还没有准备好与 Entity Framework 一起使用,因为生成的 T-SQL 是针对 SQL Server 的,在某些查询中会抛出 ASE 异常。

我可能会选择 NHibernate,因为它似乎是最有益的一条途径(因为它确实有效)而且它是免费的。此外,似乎 Progress (DataDirect) 人员在试用期间确实为他们的 ADO.NET 提供程序提供了支持,我会打电话给他们,看看问题是否可以轻松解决,在这种情况下,我可能最终会使用它.

更新:显然这个问题已经得到修复,因为现在我可以使用 Sybase 驱动程序创建模型了。

【讨论】:

以上是关于带有 Sybase ASE 15.5 的 LINQToEntities的主要内容,如果未能解决你的问题,请参考以下文章

Sybase ASE 15.7 中的审计表触发器

如何从 sybase-ase db 创建递归路径?

SYBASE ASE上排查问题自定义存储过程

如何将 Sybase ASE smalldatetime/datetime/bigdatetime 转换为标准格式

Sybase ASE:“您的服务器命令遇到死锁情况”

Python 3.4 - Sybase ASE 连接