在ASP.NET MVC中将外部数据拉入模型

在ASP.NET MVC中将外部数据拉入模型,asp.net,linq,asp.net-mvc-5,Asp.net,Linq,Asp.net Mvc 5,我是MVC新手。我阅读了微软的MVC5入门指南,对如何工作有了一些基本的了解。我要做的是创建一个查看页面,其中显示来自我的域模型的数据和不属于域模型的相关数据(相关数据位于另一台sql server上,我没有插入或更新记录。它只是我可以与域模型中的数据关联的相关数据) 为简单起见,假设我有一个域模型,其中包括: Id为Firstname、LastName、CourseId的学生 带Id、名称、部门、ExtraInfoId的课程 我想创建另一个“模型”(不确定模型是否是正确的术语) 带有Extra

我是MVC新手。我阅读了微软的MVC5入门指南,对如何工作有了一些基本的了解。我要做的是创建一个查看页面,其中显示来自我的域模型的数据和不属于域模型的相关数据(相关数据位于另一台sql server上,我没有插入或更新记录。它只是我可以与域模型中的数据关联的相关数据)

为简单起见,假设我有一个域模型,其中包括:

Id为Firstname、LastName、CourseId的学生 带Id、名称、部门、ExtraInfoId的课程

我想创建另一个“模型”(不确定模型是否是正确的术语)

带有ExtraInfo ID、时间、位置的ExtraInfo

ExtraInfo通过ExtraInfoId与课程相关。ExtraInfo将不在我正在创建或更新的数据库中。这是一个外部数据库,我想连接到它并从中提取数据以供显示,例如获取学生的名字、所学课程以及与课程相关的任何“额外信息”

我希望这是有道理的。任何信息或一些快速样本代码将不胜感激


谢谢

假设您有两个类,一个用于模型

public class Student{
   public string Name {get;set;}
   public string LastName {get;set;}
   public int CourseId {get;set;}
   public string Name {get;set;}
   public string Department {get;set;}
   public ExtraInfo ExtraInfos {get;set}
}

public class ExtraInfo {
   public int ExtraInfoId {get;set;}
   public DateTime? Time {get;set;}
   public string Location {get;set;}
}
然后在控制器中,首先对Student类进行估值,然后对Student类的ExtraInfos属性进行估值,并将Student类作为viewmodel返回给视图

 var student = GetMyStudent(id); //method for accessing your student's data, could be linq with EF, or a httpclient call
 student.ExtraInfos = GetExtraInfo(id); //same 
 return View(student);

向下滚动到a的主题,感谢您提供的信息,该主题的“对象模型对于视图的使用更为优化,并且可能看起来与基础域模型对象完全不同”。我会调查的。谢谢你的样品。我会看看,看看我能用这个做些什么。顺便说一句。如果ExtraInfo不是我的域模型的一部分,它来自一个外部SQL数据库,如果有,我想为学生包含“ExtraInfo”,会发生什么?这确实是我主要关心的问题,因为我知道如何将数据相互关联,这是模型的一部分。但不确定如何包含模型之外的数据。在方法“GetExtraInfo”中,您可以从任何地方获取数据,例如从REST端点或类库调用。只要该方法返回相同类型的对象,您就不会有任何问题,并且您的学生将获得ExtraInfo填充。您需要在student类上将ExtraInfo属性字段声明为[NotMapped]