C# NHibernate中SQL Server Compact中的Oracle用户等效项

C# NHibernate中SQL Server Compact中的Oracle用户等效项,c#,sql,oracle,nhibernate,nhibernate-mapping,C#,Sql,Oracle,Nhibernate,Nhibernate Mapping,我使用NHibernate访问Oracle和SQL Server CE数据库。我正在将Oracle db同步到SQL Server CE,以便能够脱机使用该程序 我被迫在Oracle中使用用户概念,而在映射文件中使用“.”-符号。例如,要获取用户表,我的映射文件如下所示: <class name="DatabaseLayer.Classes.Users" lazy="false" table="ADM.USER"> 在SQL Server CE db中,我只创建了一个名为“AD

我使用NHibernate访问Oracle和SQL Server CE数据库。我正在将Oracle db同步到SQL Server CE,以便能够脱机使用该程序

我被迫在Oracle中使用用户概念,而在映射文件中使用“.”-符号。例如,要获取用户表,我的映射文件如下所示:

<class name="DatabaseLayer.Classes.Users" lazy="false" table="ADM.USER">


在SQL Server CE db中,我只创建了一个名为“
ADM.USER
的表,并使用MSF将数据同步到脱机db。但是,当尝试使用NHibernate从表中加载时,我收到一条错误消息,指出没有
用户
表。。。就像它忘记了管理一样。
将映射更改为:

<class name="DatabaseLayer.Classes.Users" lazy="false" table="[ADM.USER]">


现在它应该可以工作了(已测试)。

尝试添加
自动报价
@A.B.Cade:nae,我得到一个
名称空间“urn:nhibernate-mapping-2.2”中的元素“property”不能包含文本。可能需要的元素列表:名称空间“urn:nhibernate-mapping-2.2”中的“meta、column、formula、type”。
exception这可能会有所帮助@A.B.Cade:从可能有效的文本中收集到的信息。但是我不能让它工作,所以我想我会按照瓦希登的方式去做。哦,不。。。这在SQL CE中确实有效,但在Oracle中不再有效:(您需要在Oracle中使用双引号,更多信息:但是……可能我遗漏了一些内容,但这不是(N)的目的)Hibernate:无论连接到哪个数据库,相同的代码都应该可用?至少在我的设计中,连接到不同数据库的代码是相同的。“ADM.USER”不是关键字,因此NHibernate不会将其“自动引用”为提到的“a.B.Cade”。NH将“自动引用”“USER”基于所选数据库自动为您提供报价,因为它是一个关键字。您还可以通过实施InAdminStrategy界面,强制NH自动报价所有内容,详细信息: