首页 > 解决方案 > 使用代码优先的方法,我没有 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 };
    }
}

抱歉,如果这个问题含糊不清或不清楚。谢谢你,我很感激帮助!

标签: asp.netasp.net-mvcentity-frameworkef-code-firstcode-first

解决方案


在代码优先中,您不需要 edmx 文件,因为一切都在您自己的代码中。基本构建块是:

  1. 从 DbContext 继承的类。这将等效于示例中的 MyDatabaseEntities 类。

  2. 一组实体类。它们基本上只需要是具有与您的数据库列相对应的自动属性的普通类。为了使内置约定起作用,您还需要一个 ID,例如一个名为 Id 的 int 属性

  3. 每个类型 T 的 DbSet 类型的 DbContext 类上的一组属性,这是您要查询的实体。这是您示例中的 Events 属性。

在更高级的场景中,您可以自定义超出约定可以自动推断的映射。这可以通过实体类的属性来完成,或者通过一组特殊的 API 来完成,这些 API 可以在启动时在上下文中调用


推荐阅读