Здравствуйте,ANRY! Совсемнедавноприпрохождениипрактикиотуниверситета,столкнулсясNHibernate。 Тутжепрочиталвашустатью“你好NHibernate!”。更多信息:тоесть,естьтовар,клиент,заказ。更多信息Соответственносоздал4таблицывMSSQL 2010:Товар(id_товара,название,цена),Клиент(id_клиента,имя,фамилия),Заказ(id_заказа,id_клиента,стоимость)иСтроказаказа(id_строкизаказа,id_заказа,id_товара,количество)。 Соответственно,создал4класса:Товар,Клиент,Заказ,Строказаказа。 вопросмойтакой:нужнолисоздавать4mapping-файла,илижеможноограничитьсяодним? АкогдаидетDebugвыдаетсяследующаяошибка:“无法编译映射文档:Sklad.products.hbm.xml”。 Причем“билдится”нормально,безошибок。 Вчемможетбытьпроблемаикакееможнорешить? Суважением,Андрей。
(我把它清理了一下但是,不要说俄语,其他人请改进,如果这是错的)
您好,ANRY!最近,在大学,面对NHibernate。我读了你的文章“Hello NHibernate!”。我试图实现像商店这样的东西:即产品,客户订单。因此我在MSSQL 2010中创建了4个表:
Goods (id_tovara, name, price)
Client (id_klienta, name, surname)
Order (id_zakaza, id_klienta, cost)
Order Line (id_stroki order id_zakaza, id_tovara, quantity)
因此,我创建了4个类:Product
,Customer
,Order
,Order Line
。问题是:是否要创建4类映射文件,或者只能创建一个?
当有Debug时会出现以下错误:
Could not compile the mapping document: `Sklad.products.hbm.xml`
构建正常,没有错误。可能是什么问题,我该如何解决?
问候,安德鲁。
答案 0 :(得分:0)
你可以将所有类映射放到一个文件中。 考虑allmaps.hbm.xml
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="MyAsm.Foo,MyAsm" table="Foo">
<id name="Id>
<generator class="native" />
</id>
<property name="AName" type="string" />
</class>
<class name="MyAsm.Bar,MyAsm" table="Bar">
<id name="Id>
<generator class="native" />
</id>
<property name="BName" type="string" />
</class>
</hibernate-mapping>
但是我建议不要这样做,特别是如果你的项目包含超过5个类,为了清楚起见。
另外,请记住从visual studio中设置打开文件属性并设置“Build Action” - &gt;嵌入式资源
现在,该错误意味着您在自己的映射中出错(例如,它可能是type="streng"
而不是type="string"
使用NHibernate库,您将找到一个文件“nhibernate-mapping.xsd”。如果将此文件复制到$ VisualStudioInstallDir \ Xml \ Schemas(并重新加载visual studio),您将对映射文件(或具有相同命名空间的任何XML)提供智能感知支持。
这非常有用,尤其是在学习nhibernate时,你可以避免愚蠢的错误。