2014-01-17 40 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的找不到映射此字段用於映射。如果你想映射這個並且它也是隻讀的,你需要查看不同於默認的映射選項。

對於額外的幫助 - 你應該發佈你的映射。

相關問題