在不同的表

时间:2015-06-22 18:28:26

标签: c# asp.net-mvc entity-framework-6

我是c#和asp.net mvc平台的初学者,所以当你回答一些细节回复时我会理解 这是案例:

有一个员工,它可以有多个地址。在我看来,我正在做的是,当我创建一个员工时,在同一个视图中,我给了管理员选择,他可以为他的员工添加不同的地址,但这些地址需要在其他表中,因为他可以创建尽可能多的地址他想要的地址可能不会。

正如我使用Entity FrameWork所做的那样,所以这些是类

public partial class Employee
    {
        public Employee()
        {
            this.EmployeeAddresses = new HashSet<EmployeeAddress>();
            this.EmployeeDocs = new HashSet<EmployeeDoc>();
        }

        public int EmployeeId { get; set; }
        public string LoginName { get; set; }
        public string Password { get; set; }
        public string FullName { get; set; }

        public virtual ICollection<EmployeeAddress> EmployeeAddresses { get; set; }

    }


public partial class EmployeeAddress
    {
        public int AddressId { get; set; }
        public int EmployeeId { get; set; }
        public string AddressLine1 { get; set; }
        public string AddressLine2 { get; set; }
        public string City { get; set; }
        public string State { get; set; }
        public string Country { get; set; }
        public string ZipCode { get; set; }

        public virtual Employee Employee { get; set; }
    }

以下是视图页面的示例:

<div class="col-md-6 col-xs-12">                                                                                                                                                        
     @Html.TextBoxFor(model => model.FullName, new { @class = "form-control" })                                                              
    </div>
 <div class="col-md-6 col-xs-12">                                                                                                                                                        
     @Html.TextBoxFor(model => model.LoginName, new { @class = "form-control" })                                                              
    </div>

像这样的模型属性绑定在这里我如何才能在这里找到地址表属性?

1 个答案:

答案 0 :(得分:1)

史蒂夫格林提到,你可以使用包含类似的内容:

_dbset.Include(x => x.EmployeeAddress);

这应该在您的初始选择查询中,然后您可以浏览视图中的数据集并呈现地址,因此只需编写您的剃刀视图,就像您上面所做的那样(但是对于您的地址视图)然后包含在foreach循环中的内容如下:

foreach(var item in model)
{
   @Html.DisplayFor(model => model.EmployeeAddresses.AddressLine1)
}

您可能希望先进行某种检查,看看他们是否有地址或不止一个地址。