0

是否可以将连接结果存储在模型中的两个/多个表上?例如说我有模型

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

如果模型 1 和模型 2 从数据库中提取数据,我可以通过连接模型 1 和模型 2 的结果来创建模型 3 吗?

编辑

所以,我做了类似的事情

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

我会使用两种不同的模型。用于存储数据库值的模型和用于在 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
                     };

您对模型 1 和模型 2 执行相同的代码并将这两个模型映射到一个视图模型。

于 2012-12-13T18:07:57.280 回答