100分求助:could not instantiate id generator for strategy 'sequence'

kafree_0 2007-01-17 03:11:39
项目原来用的ORACLE数据库,改成SQLSERVER数据库后运行出现:

未处理的“NHibernate.MappingException”类型的异常出现在 nhibernate.dll 中。

其他信息: could not instantiate id generator for strategy 'sequence'

XML文件中的映射sequence我已经改成identity.
配置文件更改如下:
<add key="hibernate.connection.provider" value="NHibernate.Connection.DriverConnectionProvider" />

<add key="hibernate.dialect"value="NHibernate.Dialect.MsSql2000Dialect" />

<add key="hibernate.connection.driver_class"
value="NHibernate.Driver.SqlClientDriver" />

<add key="hibernate.connection.connection_string" value="user id=sa;data source=asset;password=" />

问题出在哪里?
...全文
1095 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
kjloves 2010-11-19
  • 打赏
  • 举报
回复
无语,都不公布怎么解决的···
一个猪头 2010-08-18
  • 打赏
  • 举报
回复
qzrqzr这也叫结贴啊!!!问题怎么解决了也不说一下,就这样结贴!!!!!!!1
liujia_0421 2007-01-18
  • 打赏
  • 举报
回复
TO:现在登陆界面都没进就提示异常

提示的是什么异常?
qzrqzr 2007-01-18
  • 打赏
  • 举报
回复
kafree_0 2007-01-18
  • 打赏
  • 举报
回复
现在登陆界面都没进就提示异常
感谢liujia_0421(SnowLover)

期待~~~~
kafree_0 2007-01-18
  • 打赏
  • 举报
回复
我的代码里没有sequence的东西,你好象个跟我说的不是一个问题
现在是NHibernate 配置可能有问题,而不是SQL语句.
qzrqzr 2007-01-18
  • 打赏
  • 举报
回复
自己搞定了
但是有点郁闷,问了几天没人答
自己搞了3天..
结贴
liujia_0421 2007-01-17
  • 打赏
  • 举报
回复
sqlserver中就没有sequence,所以你用sequence.nextval,数据库当然不懂是什么意思啊...
liujia_0421 2007-01-17
  • 打赏
  • 举报
回复
TO:insert into student(sid,sname,sage) values (sequence_num.nextval,'liujia',21);
类似这样的带sequence的语句代码中还有吗?用NHibernate了,这些代码不是就不用写了吗?


你用SqlServer数据库的话,这些语句当然就用不了了啊...

从Oracle数据库转成SqlServer数据库,哪有这么容易啊...

很多用法都不一样,且有些Sql语句也不一定都通用,在Oracle中能用的Sql语句,在Sqlserver中不一定能用..

举个很简单的例子,在SqlServer中能用比如select top 10 * from ...而在Oracle中就用不了..

当然还有很多啦..

所以我觉得你应该检查下代码中涉及到数据库操作的地方,得改成适用于Sqlserver的代码..

sdl2005lyx 2007-01-17
  • 打赏
  • 举报
回复
学习。。。。
kafree_0 2007-01-17
  • 打赏
  • 举报
回复
先感谢一下liujia_0421(SnowLover)
终于有人回答了.
原来ORACLE中用的是sequence,我的更改如下:
<generator class="sequence">
<param name="sequence">Employees_seq</param>
</generator>

<generator class="identity"/>

insert into student(sid,sname,sage) values (sequence_num.nextval,'liujia',21);
类似这样的带sequence的语句代码中还有吗?用NHibernate了,这些代码不是就不用写了吗?
liujia_0421 2007-01-17
  • 打赏
  • 举报
回复
所以你的问题应该是具体代码中的操作还有问题...

查找相关操作数据库的代码,然后将其改过来..

再说Oracle数据库转成SqlServer数据库,哪是能一个更改一个配置文件就能搞定的?
liujia_0421 2007-01-17
  • 打赏
  • 举报
回复
而在用Sqlserver的identity时则完全不一样..

举个例子:

create table student
(sid int identity(1,1),
sname varchar(20),
sage int
)

比如插入一条数据:
insert into student (sname,sage) values('liujia',21);
liujia_0421 2007-01-17
  • 打赏
  • 举报
回复
TO:XML文件中的映射sequence我已经改成identity

你原来在数据库中用的是Sequence吗?

你现在改成identity,请问是怎么改的?

Sequence和identity虽然都能作为自增字段来使用,但两者间有很大差别..

Sequence for example:
得到下一个序列值,假如有一个Sequence为sequence_num
比如插入一条数据:
insert into student(sid,sname,sage) values (sequence_num.nextval,'liujia',21);

qzr2009 2007-01-17
  • 打赏
  • 举报
回复
期待```
qzrqzr 2007-01-17
  • 打赏
  • 举报
回复
up高手来啊
glacier111 2007-01-17
  • 打赏
  • 举报
回复
up
qzrqzr 2007-01-17
  • 打赏
  • 举报
回复
MARK
qghboy 2007-01-17
  • 打赏
  • 举报
回复
关注,帮顶一下........

110,535

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧