0

モデル内の 2 つ以上のテーブルの結合の結果を保存することはできますか? たとえば、モデルがあるとします

public class model1{
  public string studentID {get; set;}
  public string Address [get; set;}
 }

public class model2{
  public int ID {get; set;}
  public string StudentName [get; set;}
}

public class model3{
   public string StudentName [get; set;} 
    public string Address [get; set;}
}

model1 と model2 がデータベースからデータを取得する場合、model1 と model2 の結果を結合して model3 を作成できますか?

編集

だから、私は次のようなことをしました

model3object = dbcontext.Model3.AsQueryable();
        model3object = from m1 in dbcontext.model1
                  let id = dbcontext.Model1.Select(x => m1.studentId).Cast<int>().FirstOrDefault()
                  join m2 in dbcontext.model2
                  on  id equals m2.Id
                  select new Result
                  {
                      studentName = m2.studentName,
                      Address = m1.Adress,
                  };

しかし、私はエラーが発生します

System.NotSupportedException: The entity or complex type 'ProjectName.Models.Model3' cannot be constructed in a LINQ to Entities query.

どうすればこれを修正できますか?

4

1 に答える 1

0

2 つの異なるモデルを使用します。データベースからの値を格納するために使用されるモデルと、mvc でデータを表示するために使用されるビューモデル。

この小さな例を見てください。

var customerOrders = from o in myService.GetOrdersByCustomerId(id)
                     join p in myService.GetAllProducts() on o.ProductId equals p.Id
                     select new CustomerOrderViewModel
                     {
                         OrderId = o.Id,
                         ProductId = p.Id,
                         OrderDate = o.OrderDate,
                         ProductName = p.ProductName
                     };

model1 と model2 で同じことをコーディングし、これら 2 つのモデルを 1 つのビューモデルにマップします。

于 2012-12-13T18:07:57.280 に答える