NHibernate,VS 2010

时间:2010-05-21 16:24:13

标签: c# nhibernate nhibernate-mapping

Здравствуйте,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个类:ProductCustomerOrderOrder Line。问题是:是否要创建4类映射文件,或者只能创建一个?

当有Debug时会出现以下错误:

Could not compile the mapping document: `Sklad.products.hbm.xml`

构建正常,没有错误。可能是什么问题,我该如何解决?

问候,安德鲁。

1 个答案:

答案 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时,你可以避免愚蠢的错误。