|
|
NHibernate(one-to-many)的问题 |
|
|
作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站 |
<?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0"> <class name="RG.SuperStarOA.Customers.Data.Customers,WebApplication1" table="Customers"> <id name="CustomerID" column="CustomerID" type="String" length="5"> <generator class="assigned" /> </id> <set name="Orders" > <key column="CustomerID" /> <one-to-many class="RG.SuperStarOA.Orders.Data.Orders,WebApplication1" /> </set> <property name="CompanyName" column="CompanyName" type="String" length="40"></property> <property name="ContactName" column="ContactName" type="String" length="30"></property> <property name="ContactTitle" column="ContactTitle" type="String" length="30"></property> <property name="Address" column="Address" type="String" length="60"></property> <property name="City" column="City" type="String" length="15"></property> <property name="Region" column="Region" type="String" length="15"></property> <property name="PostalCode" column="PostalCode" type="String" length="10"></property> <property name="Country" column="Country" type="String" length="15"></property> <property name="Phone" column="Phone" type="String" length="24"></property> <property name="Fax" column="Fax" type="String" length="24"></property> </class> </hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0"> <class name="RG.SuperStarOA.Orders.Data.Orders,WebApplication1" table="Orders"> <id name="OrderID" column="OrderID" type="Int32" length="4"> <generator class="identity" /> </id> <many-to-one name="Customers" column="CustomerID" class="RG.SuperStarOA.Customers.Data.Customers,WebApplication1" /> <property name="CustomerID" column="CustomerID" type="String" length="5"></property> <property name="EmployeeID" column="EmployeeID" type="Int32" length="2"></property> <property name="OrderDate" column="OrderDate" type="DateTime" length="4"></property> <property name="RequiredDate" column="RequiredDate" type="DateTime" length="4"></property> <property name="ShippedDate" column="ShippedDate" type="DateTime" length="4"></property> <property name="ShipVia" column="ShipVia" type="Int32" length="4"></property> <property name="Freight" column="Freight" type="Decimal" length="4"></property> <property name="ShipName" column="ShipName" type="String" length="40"></property> <property name="ShipAddress" column="ShipAddress" type="String" length="60"></property> <property name="ShipCity" column="ShipCity" type="String" length="15"></property> <property name="ShipRegion" column="ShipRegion" type="String" length="15"></property> <property name="ShipPostalCode" column="ShipPostalCode" type="String" length="10"></property> <property name="ShipCountry" column="ShipCountry" type="String" length="15"></property> </class> </hibernate-mapping>
<?xml version="1.0" encoding="utf-8" ?> <hibernate-mapping xmlns="urn:nhibernate-mapping-2.0"> <class name="RG.SuperStarSystem.Shippers.Data.Shippers,WebApplication1" table="Shippers"> <id name="ShipperID" column="ShipperID" type="Int32" length="4"> <generator class="identity"/> </id> <property name="CompanyName" column="CompanyName" type="String" length="40"></property> <property name="Phone" column="Phone" type="String" length="24"></property> </class> </hibernate-mapping>
//下面这段代码执行就完全没有问题 private void Button3_Click(object sender, System.EventArgs e) { NHibernate.Cfg.Configuration c = new NHibernate.Cfg.Configuration(); c.AddXmlFile(System.Web.HttpContext.Current.Server.MapPath("Customers.xml")); c.AddXmlFile(System.Web.HttpContext.Current.Server.MapPath("Orders.xml")); c.AddXmlFile(System.Web.HttpContext.Current.Server.MapPath("Shippers.xml")); ISession vSession= c.BuildSessionFactory().OpenSession(); ITransaction vTransaction = vSession.BeginTransaction();
try { IList data = vSession.Find("from Shippers");
DataGrid1.DataSource = data; DataGrid1.DataBind(); vTransaction.Commit(); } catch(Exception ex) { vTransaction.Rollback(); Response.Write(ex.Message); } finally { vSession.Close(); } }
//这段代码去老是提示:Could not execute query private void Button2_Click(object sender, System.EventArgs e) { NHibernate.Cfg.Configuration c = new NHibernate.Cfg.Configuration(); c.AddXmlFile(System.Web.HttpContext.Current.Server.MapPath("Customers.xml")); c.AddXmlFile(System.Web.HttpContext.Current.Server.MapPath("Orders.xml")); c.AddXmlFile(System.Web.HttpContext.Current.Server.MapPath("Shippers.xml")); ISession vSession= c.BuildSessionFactory().OpenSession(); ITransaction vTransaction = vSession.BeginTransaction();
try { IList data = vSession.Find("from Customers");
DataGrid1.DataSource = data; DataGrid1.DataBind(); vTransaction.Commit(); } catch(Exception ex) { vTransaction.Rollback(); Response.Write(ex.Message); } finally { vSession.Close(); } }
我测试来测试去,都是觉得是 <set name="Orders" > <key column="CustomerID" /> <one-to-many class="RG.SuperStarOA.Orders.Data.Orders,WebApplication1" /> </set> 或者,写查询语句有问题? 谁能解决,拜托~`

|
|
相关文章:相关软件: |
|