由於某些原因,NHibernate告訴我它不能將NHibernate.Collection.Generic.PersistentGenericSet[Ingredient]
轉換爲System.Collection.Generic.IList[Ingredient]
,當我試圖從數據庫中獲取數據時數據庫。這是我的類映射/實施的一個簡化版本:NHibernate無法將NHibernate.Collection.Generic.PersistentGenericSet強制轉換爲System.Collections.Generic.IList
public class Product {
protected Product() { };
public virtual Name { get; set; }
public virtual IList<Ingredient> {
get { return new List<Ingredient>(ingredients).AsReadOnly(); }
protected set { ingredients = value; }
}
private IList<Ingredient> ingredients = new List<Ingredient>();
}
-
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="LanchesAdmin.Core.Domain.Product, LanchesAdmin.Core" table="product" >
<id name="ID" generator="identity">
<column name="id" not-null="true" />
</id>
<property name="Name" column="name" length="64" not-null="true" />
<set name="Ingredients" table="ingredient" fetch="join" lazy="true" inverse="true">
<key column="product_id" />
<one-to-many class="LanchesAdmin.Core.Domain.Ingredient, LanchesAdmin.Core" />
</set>
</class>
</hibernate-mapping>
我見過幾個相關的問題,但他們都告訴我用的IList,而這正是我正在做。
嘗試刪除新列表和ReadOnly調用的創建。 – Euphoric
@Euphoric,試過了,沒有任何區別。 – rmobis
@Raphael_你可以發佈你的代碼,最終工作。如果可能的話,你可以發佈「Ingredient」的代碼(或者解釋它是什麼)。我遇到了一個問題,想知道您的解決方案是否能解決問題。提前致謝。 – REMESQ