Rob*_*Rob 11 mapping collections nhibernate nhibernate-mapping c#-3.0
我收到了错误
非法访问加载集合
当我想要获得属于某个产品的变种列表时.NHibernate映射如下
<list name="Variants" lazy="false" cascade="save-update" inverse="false" table="PluginProduct_ProductVariant">
<key column="ProductId" />
<index column="Ordinal" />
<one-to-many class="Plugin.Product.Business.Entities.Variant, Plugin.Product" />
</list>
Run Code Online (Sandbox Code Playgroud)
我已经尝试过按照本网站其他主题的建议来调整懒惰和反向属性,但他们没有做到这一点.
我正在将NHibernate与ASP.NET MVC结合使用,并且我试图在我的视图中循环遍历一个变体集合.视图调用以下方法
public ActionResult ShowProduct()
{
var id = new Guid(PluginData.PageParameters["Id"]);
var variant = _variantService.GetVariantById(id);
var product = variant.Product;
return PluginView("ShowProduct.ascx", product);
}
Run Code Online (Sandbox Code Playgroud)
上面的代码运行没有任何问题.但是当我在返回视图之前调试时,我看到产品包含的变体列表是空的.当我打开更详细的调试信息时,它会向我显示收集错误.
在我的Web应用程序的视图中,我正在尝试执行以下操作
<%
foreach (var variant in Model.Variants)
{%>
kleur: <%= variant.Color %>
van: <%= variant.FromPrice %> voor: <%= variant.Price %>
<%} %>
Run Code Online (Sandbox Code Playgroud)
好吧,非常愚蠢,但我终于解决了问题.
Ordinal数据库中的索引列未获取正确的值,因此始终如此NULL.这导致错误,因为NHibernate无法找到索引列来创建列表.
不幸的是,花了我很多时间,但很高兴我解决了!
| 归档时间: |
|
| 查看次数: |
19711 次 |
| 最近记录: |