2011-10-06 173 views
0

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

我说,因为下面的“问题”:

  1. 它通常需要很长时间来生成/更新模型
  2. 有时它会产生一个错误,指出该领域<字段名>已经在元数据集合(我认为它与命名约束或字段名称是有关系的表中相同(FKs是最常见的)
  3. 我做了一个简单的模型,其中将不会有问题生成/更新,但问题是有时(取决于查询)T-SQL ge LINQ To Entities在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驱动程序创建模型。