映射到受保护集合的NHibernate字节码
我试图(通过代码)将一个受保护的收藏映射到一个包,但我很挣扎。e、 g映射到受保护集合的NHibernate字节码,nhibernate,mapping,nhibernate-mapping,protected,mapping-by-code,Nhibernate,Mapping,Nhibernate Mapping,Protected,Mapping By Code,我试图(通过代码)将一个受保护的收藏映射到一个包,但我很挣扎。e、 g public class MyClass { .... protected virtual ICollection<Items> MyItems { get; set; } .... } public class MyClassMapping : ClassMapping<MyClass> { ... Bag(x => x.MyItems, map =&
public class MyClass
{
....
protected virtual ICollection<Items> MyItems { get; set; }
....
}
public class MyClassMapping : ClassMapping<MyClass>
{
...
Bag(x => x.MyItems, map =>
{
....
}
...
}
公共类MyClass
{
....
受保护的虚拟ICollection MyItems{get;set;}
....
}
公共类MyClassMapping:类映射
{
...
行李(x=>x.MyItems,地图=>
{
....
}
...
}
它抛出一个映射异常,内部异常为“ArgumentNullException:值不能为null。参数名称:localMember”。如果“MyItems”集合是公共的,则可以正常工作
我遵循了这篇文章(),它建议使用接受字符串的方法重载
public class MyClassMapping : ClassMapping<MyClass>
{
...
Bag("MyItems", map =>
{
....
}
...
}
公共类MyClassMapping:ClassMapping
{
...
袋子(“我的物品”,地图=>
{
....
}
...
}
但这会产生一个编译错误“无法从用法推断出方法…的类型参数。请尝试显式指定类型参数”
是否可以映射到受保护的集合(我使用的是NH3.3)?有人能给我举个例子吗
谢谢,
Chet我们可以在这里看到重载方法: 解决方案:我们要做的是像这样声明映射
// the TElement must be expressed explicitly as Items
Bag<Items>("MyItems", map =>
{
....
}
//远程通讯必须明确表示为项
袋子(“我的物品”,地图=>
{
....
}
Hi Radmin,我刚刚验证了这一点,非常感谢。很高兴看到这一点。享受NHibernate;)
// TElement is Items
protected virtual ICollection<Items> MyItems { get; set; }
// the TElement must be expressed explicitly as Items
Bag<Items>("MyItems", map =>
{
....
}