我正在运行NHibernate和SQL Server CE我想使用GUID作为我的ID列。这是我已经有了代码:在SQL Server和NHibernate中使用GUID
映射:
<class name="DatabaseType" table="DBMON_DATABASE_TYPE">
<id name="Id" column="DATABASE_TYPE_ID">
<generator class="guid" />
</id>
<property name="DispName" />
</class>
这是创建语句它创建:
create table DBMON_DATABASE_TYPE (
DATABASE_TYPE_ID BIGINT not null,
DispName NVARCHAR(255) null,
primary key (DATABASE_TYPE_ID)
)
这是我希望能够那种INSERT语句在其上运行:
Insert into DBMON_DATABASE_TYPE (DATABASE_TYPE_ID,DISPNAME) values ('f5c7181e-e117-4a98-bc06-733638a3a264','DOC')
这是我的错误,当我尝试:
Major Error 0x80040E14, Minor Error 26306
> Insert into DBMON_DATABASE_TYPE (DATABASE_TYPE_ID,DISPNAME) values ('f5c7181e-e117-4a98-bc06-733638a3a264','DOC')
Data conversion failed. [ OLE DB status value (if known) = 2 ]
再次我的目标是能够使用的GUID为我的表的ID列,他们甚至不需要是自动生成的,我可以在NHibernate的的保存/ SaveOrUpdate方法手动生成它们。如果有任何其他信息需要了解,请告诉我!
如果在客户端生成ID,则使用Guid.Comb。如果数据库正在生成ID,请使用NewSequentialID。 – 2010-10-06 16:10:53
当单个客户端实例正在运行时,梳子单元只能很好地工作。当您需要在多个框上运行时,您还可以在客户端分配GUid.NewGuid。 – Paco 2010-10-06 19:29:47