Возникли проблемы с добавлением элемента / объекта в список / коллекцию.
Это то, что я сделал до сих пор ...
public abstract class Member
{
[DisplayName("ID")]
public string MemberId { get; set; }
[DisplayName("Date Applied")]
public System.DateTime? DateApplied { get; set; }
[DisplayName("Date Membered")]
public System.DateTime? DateMembered { get; set; }
[DisplayName("Member Type")]
public int MemberTypeFlag { get; set; }
private ICollection<Address> _Addresses;
public virtual ICollection<Address> Addresses
{
get { return _Addresses ?? (_Addresses = new HashSet<Address>()); }
set { _Addresses = value; }
}
}
public class Person : Member
{
[DisplayName("Last Name")]
public string LastName { get; set; }
[DisplayName("First Name")]
public string FirstName { get; set; }
[DisplayName("Date Of Birth")]
public System.DateTime DateOfBirth { get; set; }
}
И вот как я отобразил это..
public class MapAddress : EntityTypeConfiguration<Address>
{
public MapAddress()
: base()
{
HasKey(a => a.MemberId).HasOptional(a => a.Member).WithMany(i => i.Addresses);
Property(p => p.Address1).HasColumnName("ADDRESS1");
Property(p => p.Address2).HasColumnName("ADDRESS2");
Property(p => p.City).HasColumnName("CITY");
Property(p => p.ZipCode).HasColumnName("ZIPCODE");
Property(p => p.AddressTypeFlag).HasColumnName("ADDRESS_TYPE_FFLG");
ToTable("MBR_ADDRESS");
}
}
И возникла ошибка при сохранении ..
"Проверка не удалась для одного или нескольких объектов. Дополнительные сведения см. В свойстве EntityValidationErrors."
ЭтоВот как я могу добавить в коллекцию ..
public void Apply(PersonInformation member)
{
Person person = new Person();
person = member.person;
person.MemberId = CustomID.GenerateID();
person.MemberTypeFlag = (int)Enum.Parse(typeof(EnumMemberType), "Person");
person.DateApplied = DateTime.Now;
Address baddress = new Address();
baddress = member.billingAddress;
Address paddress = new Address();
paddress = member.premiseAddress;
person.Addresses.Add(baddress);
person.Addresses.Add(paddress);
context.People.Add(person);
context.SaveChanges();
}
Или есть другой элегантный способ сохранить участника с большим количеством адресов.