是否可以将连接结果存储在模型中的两个/多个表中? 例如 说我有模特
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.
我该如何解决这个问题?
答案 0 :(得分: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
};
您的代码对您的model1和model2执行相同的操作,并将这两个模型映射到一个视图模型。