好的,我尝试了一些entity framework
和ASP NET MVC
,并使其工作。万岁!
这是我设法写的代码:
public ActionResult Index([Bind(Prefix="id")] int patientId = 0)
{
Patient patient = db.Patients.Find(patientId);
if (patient == null)
{
return HttpNotFound();
}
return View(patient);
}
当有人键入URL时,这个action-method
会在我的Visual studio中查询localdb
,我会找到患者,并将其显示在视图中。
现在,是时候学习一些基础知识了。
虽然上面的一切都很好,但我仍然很难适应MVC大师在现实世界中使用的MVC
术语。
术语
Entity
到底是用来干什么的?它是模型类的表示形式吗?DbContext
类中的术语Context
。你将如何定义它?在上面的代码中,visual studio 2012在
Find
方法的鼠标悬停上显示其签名为"Patient DbSet.Find(params object[]keyValues).那里可用的方法描述还说:"查找具有给定主键值的实体。如果上下文中存在具有给定主键的实体,则会立即返回该实体,而无需请求存储。"
store
在上面的描述中指的是什么?Find
方法签名包含关键字params
。所以,有可能将多个对象传递给它。有传递multiple primary keys
的例子吗?
1"实体"一词的确切用途是什么?它是模型类的表示形式吗
实体通常是指与数据库具有一对一关系的类。它是您的数据库模型类。有几种类型的模型:视图模型、数据传输模型和实际数据库模型(通常称为实体)
2-DbContext类中的术语Context。你将如何定义它
上下文表示您的数据库。映射的每个表在上下文中都有自己的DbSet<T>
,您可以通过它进行查询
3/4-在上面的代码中,visual studio 2012在Find方法的鼠标上方显示其签名为"Patient DbSet.Find(params object[]keyValues)"。
存储是指实际的数据库。Find
文档试图说明的是,如果与传递的密钥相对应的对象已经存在于ObjectStateManager
中,也就是说,如果它已经被以前的查询检索到,那么Entity Framework不会往返于服务器以再次获取相同的对象。
Find方法签名包含关键字params。所以,有可能将多个对象传递给它。有没有传递多个主键的例子
当您有一个复合主键时,您将使用多个参数。
"实体"一词的确切含义是什么?它是模型类的表示形式吗?
不,实体是数据库实体。通常不赞成将数据库模型用作视图模型。
DbContext类中的术语Context。你将如何定义它?
数据库上下文。表的集合。
商店在上面的描述中指的是什么?
数据库。
Find方法签名包含关键字params。所以,有可能将多个对象传递给它。有没有传递多个主键的例子?
上面写着:
查找具有给定主键值的实体
一个实体可以有一个复合主键。
你为什么不找一本关于MVC或实体框架的好书来更好地理解这个主题呢?:-)请尝试展示更多的研究成果。