2014-01-17 41 views
1

我已创建私人字段并在类的构造函数中初始化它。找不到属性或字段

#region "Private Fields" 

private readonly IList<Ethnicity> _ethnicities; 
private readonly IList<Contact> _contacts; 
private readonly IList<Address> _addresses; 
private readonly IList<Dependent> _dependents; 
private readonly IList<InsuredType> _insuredTypes; 
private const string PrimaryEmailCode = "EML"; 
private const string SecondaryEmailCode = "EM2"; 
private const string HomePhoneCode = "HPH"; 
private const string CellPhoneCode = "CPH"; 
private const string PrimaryInsured = "PRIMARY"; 
private const string DependentInsured = "DEPENDENT"; 
private const string PermenantAddressCode = "PERM"; 
private const string MailingAddressCode = "MAIL"; 

#endregion 

#region "Constructors" 
public Insured() 
{ 
    _ethnicities = new List<Ethnicity>(); 
    _contacts = new List<Contact>(); 
    _addresses = new List<Address>(); 
    _dependents = new List<Dependent>(); 
    _insuredTypes = new List<InsuredType>(); 
} 

#endregion 

#region "Public Properties" 

public virtual IEnumerable<InsuredType> Insuredtypes 
{ 
    get { return _insuredTypes; } 
} 

public virtual string InsuredType 
{ 
    get 
    { 
     if (InsuredStatus == "ACTIVE") 
     { 

      var type = _insuredTypes.FirstOrDefault(n => n.ExpiryDate > DateTime.Now); 
      if (type != null) 
      { 
       var status = type.InsuredTypeDescription == "PRIM" ? PrimaryInsured : DependentInsured; 
       return status; 
      } 
     } 

     if (InsuredStatus == "EXPIRED" || InsuredStatus == "MERGED") 
     { 
      var type = 
       _insuredTypes.Where(n => n.ExpiryDate < DateTime.Now) 
          .OrderByDescending(n => n.ExpiryDate) 
          .FirstOrDefault(); 
      if (type != null) 
      { 
       var status = type.InsuredTypeDescription == "PRIM" ? PrimaryInsured : DependentInsured; 

       return status; 
      } 
     } 
     return string.Empty; 
    } 
} 

当我运行它,我得到一个例外,_insuredTypes could not found in Insured class

任何人都可以指出我做错了什么?

这里是保险类

internal class InsuredMap : CacheableEntityClassMap<Entities.Insured> 
{ 
    public InsuredMap() 
    { 
     ReadOnly(); 

     Table("Insured"); 
     Id(x => x.Id, "InsuredId"); 

     Map(x => x.Gender,Convert.ToString("SexCd")).CustomType<TrimmedStringUserType>(); 
     Map(x => x.GradDate, Convert.ToString("GradMthYrNum")).CustomType<TrimmedStringUserType>(); 
     Map(x => x.SrId, Convert.ToString("SIDIdNum")).CustomType<TrimmedStringUserType>(); 
     Map(x => x.SchoolId, Convert.ToString("SchoolIdTxt")).CustomType<TrimmedStringUserType>(); 
     Map(x => x.Ssn, Convert.ToString("SocSecNumTxt")).CustomType<TrimmedStringUserType>(); 
     Map(x => x.DateOfBirth, Convert.ToString("BirthDt")).CustomType<TrimmedStringUserType>(); 
     Map(x => x.ExpDt, ("ExpDt")); 

的映射这里是保险类型

HasMany(x => x.Insuredtypes) 
    .KeyColumn("InsuredId") 
    .LazyLoad() 
    .Inverse() 
    .Cascade.All(); 
+2

哪一行?你从哪里得到错误? – RononDex

+0

这是编译时错误吗?如果是这样,你的代码是否在同一个类中? “被保险人”课程在哪里生活? – paqogomez

+0

我上面贴的代码是被保险人的一部分 – JuniorDev

回答

1

看起来你有_insuredTypes属性设置为私有的,所以NHibernate的找不到映射此字段用于映射。如果你想映射这个并且它也是只读的,你需要查看不同于默认的映射选项。

对于额外的帮助 - 你应该发布你的映射。

相关问题