asp.net - 使用代码优先的方法,我没有 edmx 文件。有什么选择?
问题描述
我对 asp.net mvc 还很陌生,所以请多多包涵。我想实现一个日历功能,我看过的所有教程都使用数据库优先方法并拥有 edmx 文件(实体数据模型)
我首先使用代码,对于引用此 edmx 文件的代码,我能做些什么?我要引用上下文吗?
例子:
public JsonResult GetEvents()
{
//Here MyDatabaseEntities is our entity datacontext (see Step 4)
using (MyDatabaseEntities dc = new MyDatabaseEntities())
{
var v = dc.Events.OrderBy(a => a.StartAt).ToList();
return new JsonResult { Data = v, JsonRequestBehavior = JsonRequestBehavior.AllowGet };
}
}
抱歉,如果这个问题含糊不清或不清楚。谢谢你,我很感激帮助!
解决方案
在代码优先中,您不需要 edmx 文件,因为一切都在您自己的代码中。基本构建块是:
从 DbContext 继承的类。这将等效于示例中的 MyDatabaseEntities 类。
一组实体类。它们基本上只需要是具有与您的数据库列相对应的自动属性的普通类。为了使内置约定起作用,您还需要一个 ID,例如一个名为 Id 的 int 属性
每个类型 T 的 DbSet 类型的 DbContext 类上的一组属性,这是您要查询的实体。这是您示例中的 Events 属性。
在更高级的场景中,您可以自定义超出约定可以自动推断的映射。这可以通过实体类的属性来完成,或者通过一组特殊的 API 来完成,这些 API 可以在启动时在上下文中调用
推荐阅读
- javascript - 上传文件||您尝试上传的文件类型不允许
- android - tflite.run() returning same output for different input values
- android - qt快速应用程序中android上的OpenSSL版本不兼容
- image-processing - 如何在图像中找到条形码?
- javascript - 打字稿函数在界面中返回不同类型的结果
- python - 基于作为子集的列值匹配 DataFrame
- python - 当迭代字符串python时,最后返回None
- javascript - 如何解密 kotlin 中的文本,在 nodejs 中加密?
- jwt - 如何识别来自不同租户nestjs多租户jwt的jwt令牌
- sql - cosmos DB中如何实现JOIN IN、GROUP BY等复杂SQL语句