2014-01-16 2 views
0

두 개의 데이터베이스 뷰 Customer 및 CustomerOrder가 있습니다. 뷰만 사용하고 데이터베이스 테이블은 사용할 수 없습니다. 나는 데이터 만 읽으므로 테이블이 실제로 필요하지 않습니다. 각 CustomerOrder에는 해당 고객이 있습니다.다른 열 이름을 사용하여 두 테이블 연결

namespace store.Models 
    { 
     public class CustomerOrderModel 
     { 
      [Key] 
      public String orderNumber { get; set; } 
      public String billingCustomerID { get; set; } 
      public String poNumber { get; set; } 
     } 

     public class CustomerModel 
     { 
      [Key] 
      public String customerID { get; set; } 
      public String name { get; set; } 
      public String address { get; set; } 
     } 

     public class StoreContext : DbContext 
     { 
      public DbSet<CustomerOrderModel> CustomerOrders { get; set; } 
      public DbSet<CustomerModel> Customers { get; set; } 
     } 
    } 

어떻게 인 CustomerOrder 및 고객 (CustomerOrder.billingCustomerID = Customer.customerID)가 연결합니까 : 여기

내 코드?

나는 이것에 대해 많은 질문을했지만, 대부분 외래 키를 연결하고 두 테이블 모두에 대해 동일한 열 이름을가집니다. 열 이름을 변경할 수있는 옵션이 없습니다.

+0

당신이 ForeignKeyAttribute에 봤어 foreach 문에서

List<string> list = new List<string>(); 
? http://msdn.microsoft.com/en-us/library/system.componentmodel.dataannotations.schema.foreignkeyattribute(v=vs.110).aspx –

답변

0

보기로 보내려는 필드가있는보기 모델을 만듭니다. 다음 컨트롤러에서 다른 테이블에서보기 모델을 채우는

var data1 = //populate first table 
var data2 = //populate second table 
List<Model> table = new List<Model>(); 
foreach(var temp in data1){ 
    Model model = new Model(); 
    data2select = data2.Where(x => x.CustomerID = temp.billingCustomerID); 
    model.ID = temp.id; 
    model.address = data2select.address; 
    etc 
    table.add(model); 
} 

편집 : 당신은 당신이 아마 모델 대신 목록을 작성해야 하나의 열을 원하는 경우

그것을 간단하게하는

list.add(temp.name); //the field that you want 
list.add(data2select.name); 
+0

단일 행 (고객 주문) 만 원하는 경우 어떻게해야합니까? – janinaj

+0

단일 행에 대해 문자열 목록을 정의하고 추가하십시오. 편집을 참조하십시오. –

관련 문제