Asp.net mvc 将项目添加到列表/集合(首先使用MVC EF 4.1代码)

Asp.net mvc 将项目添加到列表/集合(首先使用MVC EF 4.1代码),asp.net-mvc,ef-code-first,one-to-many,Asp.net Mvc,Ef Code First,One To Many,将项/对象添加到列表/集合时出现问题 这就是我到目前为止所做的 public abstract class Member { [DisplayName("ID")] public string MemberId { get; set; } [DisplayName("Date Applied")] public System.DateTime? DateApplied { get; set; } [DisplayName("Date Membered

将项/对象添加到列表/集合时出现问题

这就是我到目前为止所做的

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; }
}

或者还有其他优雅的方法来保存具有多个地址的成员。

为什么要创建一个新的人和两个新地址,然后在稍后重新分配变量1行?在您的示例中有很多冗余代码

您的代码基本上可以归结为以下几点:

public void Apply(PersonInformation member)
{
    member.person.MemberId = CustomID.GenerateID();
    member.person.MemberTypeFlag = (int)Enum.Parse(typeof(EnumMemberType), "Person");
    member.person.DateApplied = DateTime.Now;

    member.person.person.Addresses.Add(member.billingAddress);
    person.Addresses.Add(member.premiseAddress);

    context.People.Add(member.person);
    context.SaveChanges();
}
    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();
    }
public void Apply(PersonInformation member)
{
    member.person.MemberId = CustomID.GenerateID();
    member.person.MemberTypeFlag = (int)Enum.Parse(typeof(EnumMemberType), "Person");
    member.person.DateApplied = DateTime.Now;

    member.person.person.Addresses.Add(member.billingAddress);
    person.Addresses.Add(member.premiseAddress);

    context.People.Add(member.person);
    context.SaveChanges();
}