尝试映射时,出现此错误:
关联引用未映射的类:System.Object
我的课程:
public partial class MessageIdentifier
{
public virtual int ID { get; set; }
public virtual object Item { get; set; }
}
和惯例:
public class MyUsertypeConvention : IPropertyConvention
{
public void Apply(IPropertyInstance instance)
{
if (instance.Type.Name == "Object")
instance.CustomType<string>();
}
}
请建议如何映射?
答案 0 :(得分:1)
作为一个简单的(快速,天真)解决方案 - 我建议创建并映射真实的string
属性。然后让你的 setter 和 getter (或某些AOP或者监听器)来执行“to / from string conversion”:
public partial class MessageIdentifier
{
public virtual int ID { get; set; }
public virtual object Item
{
get { return ... my conversion from string; }
set { ItemString = ...my conversion to string; }
}
public virtual string ItemString { get; set; }
}
智能且首选(但更具挑战性)是创建CustomType
- 这将隐藏转换并支持REUSE。检查例如这里
答案 1 :(得分:0)
不是一个满意的答案。它不适用于使用XML从xsd生成的类。您可以尝试以下方法:
public partial class MessageIdentifier
{
public virtual int ID { get; set; }
private object itemField;
public object Item
{
get { return this.itemField; }
set { this.itemField = value; }
}
}