DbContext配置?

2023-11-22

数据库上下文

public class HaberPortalDB : DbContext
{
    public DbSet<Haberler> Haberler { get; set; }
    public DbSet<Kategoriler> Kategoriler { get; set; }
    public DbSet<Yazarlar> Yazarlar { get; set; }
}

public class Haberler
{
    public virtual int Id { get; set; }
    public virtual string Baslik { get; set; }
    public virtual string Aciklama { get; set; }
    public virtual string Icerik { get; set; }

    public virtual int YazarId { get; set; }
    public virtual Yazarlar Yazar { get; set; }

    public virtual int KategoriId { get; set; }
    public virtual Kategoriler Kategori { get; set; }
    public virtual ICollection<Resimler> Resimler { get; set; }
}

public class Kategoriler
{
    public virtual int Id { get; set; }
    public virtual string KategoriAdi { get; set; }
    public virtual string Aciklama { get; set; }

    public virtual ICollection<Haberler> Haberler { get; set; }
}

public class Yazarlar
{
    public virtual int Id { get; set; }
    public virtual string YazarAdi { get; set; }
    public virtual string Ozgecmis { get; set; }
    public virtual string Eposta { get; set; }

    public virtual ICollection<Haberler> Haberler { get; set; }
}

public class Resimler
{
    public virtual int Id { get; set; }
    public virtual string Url { get; set; }
    public virtual string Ad { get; set; }

    public virtual Haberler Haber { get; set; }
}

脚手架正在生成以下操作方法

    //
    // GET: /Test/

    public ActionResult Index()
    {
        return View(db.Kategoriler.ToList());
    }

    //
    // GET: /Test/Details/5

    public ActionResult Details(int id = 0)
    {
        Kategoriler kategoriler = db.Kategoriler.Find(id);
        if (kategoriler == null)
        {
            return HttpNotFound();
        }
        return View(kategoriler);
    }

    //
    // GET: /Test/Create

    public ActionResult Create()
    {
        return View();
    }

    //
    // POST: /Test/Create

    [HttpPost]
    public ActionResult Create(Kategoriler kategoriler)
    {
        if (ModelState.IsValid)
        {
            db.Kategoriler.Add(kategoriler);
            db.SaveChanges();
            return RedirectToAction("Index");
        }

        return View(kategoriler);
    }

    //
    // GET: /Test/Edit/5

    public ActionResult Edit(int id = 0)
    {
        Kategoriler kategoriler = db.Kategoriler.Find(id);
        if (kategoriler == null)
        {
            return HttpNotFound();
        }
        return View(kategoriler);
    }

    //
    // POST: /Test/Edit/5

    [HttpPost]
    public ActionResult Edit(Kategoriler kategoriler)
    {
        if (ModelState.IsValid)
        {
            db.Entry(kategoriler).State = EntityState.Modified;
            db.SaveChanges();
            return RedirectToAction("Index");
        }
        return View(kategoriler);
    }

    //
    // GET: /Test/Delete/5

    public ActionResult Delete(int id = 0)
    {
        Kategoriler kategoriler = db.Kategoriler.Find(id);
        if (kategoriler == null)
        {
            return HttpNotFound();
        }
        return View(kategoriler);
    }

    //
    // POST: /Test/Delete/5

    [HttpPost, ActionName("Delete")]
    public ActionResult DeleteConfirmed(int id)
    {
        Kategoriler kategoriler = db.Kategoriler.Find(id);
        db.Kategoriler.Remove(kategoriler);
        db.SaveChanges();
        return RedirectToAction("Index");
    }

    protected override void Dispose(bool disposing)
    {
        db.Dispose();
        base.Dispose(disposing);
    }

每种方法都有断点。Dispose()方法在其他方法工作之后才工作。

How Dispose()每个工作方法都会被触发?


有几点需要注意:

  • 控制器的生命周期仅与每个请求一样长。
  • 每个请求将执行一个操作方法。
  • 当控制器完成请求时调用 Dispose。

因此,这就是每个请求期间发生的情况:

  1. 控制器已初始化
  2. DbContext 已初始化
  3. 执行动作方法
  4. 控制器Dispose方法执行
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

DbContext配置? 的相关文章

随机推荐

  • 独立于AWS Lambda函数的Python子进程

    我已成功创建一个读取和写入 RDS 的 Lambda 函数 app1 我的Lambda函数是用python2 7编写的 并作为压缩包上传 我在与 RDS 和 Lambda 函数相同的 VPC 中的 EC2 实例上创建并测试了压缩包 接下来
  • CSS 中的负边距如何工作以及为什么是 (margin-top:-5 != margin-bottom:5)?

    垂直定位元素的一个常见技巧是使用以下 CSS item position absolute top 50 margin top 8px half of height height 16px 当在 Chrome 中的指标视图中看到时 您会看到
  • 如何在 SVG 矩形中放置文本并使其居中

    我有以下矩形
  • git删除了所有内容,如何恢复文件和文件夹

    这是我第一次使用git 我想将现有的项目导入github 然后所有内容都被删除了 搜索答案后 我认为 git 在 git pull 后删除了文件 我正在尝试恢复文件和文件夹 但我找不到如何执行此操作 我做了下一个 jesus jesus K
  • 数值向量运算符重载+右值引用参数

    我有下面的数值向量模板类 用于数值计算的向量 我正在努力让它成为可能D A B C所有变量都是Vector对象 A B and C不应修改 我的想法是使用Vector operator Vector B 这样在 希望 Rvalue 之后Ve
  • java.lang.ClassCastException:android.view.ViewGroup$LayoutParams 无法转换为 android.widget.Gallery$LayoutParams

    我正在尝试添加Fancycoverflow在我的应用程序中 它可以很好地处理静态图像 如这个例子 但我在适配器中做了一些更改 我尝试运行我的应用程序 它崩溃并显示以下错误 FATAL EXCEPTION main java lang Cla
  • 如何使用前缀/后缀重命名?

    我该怎么做mv original filename new original filename无需重新输入原始文件名 我想象能够做类似的事情mv p new original filename也许mv original filename n
  • Java 关键字作为变量

    在VB NET中 我们可以用括号将变量名括起来 并使用关键字作为变量名 如下所示 Dim new As String C 等效项 string new 我想知道 Java 是否有相当于这样做的东西 不可以 您可以添加下划线或类似的废话 但基
  • 没有catalina.out

    我不知道如何设置以及设置什么 以便在我的计算机上的 Tomcat 上安装 catalina out 我在 Windows XP 上使用 Tomcat 6 0 28 压缩版本 要启动服务器 我只需运行startup bat file 难道我做
  • 我可以在gdb下打印gdtr和gdt描述符吗?

    I want to use gdb to see my GDTR LDTR TTR and segment register 不可见部分 x86 所以在 gdb 中我输入 p x gdtr 等 但结果是 6 值无法转换为整数 在 gdb 中
  • C 和 C++ 编码标准

    关于 C 和 C 编码标准的最佳实践是什么 是否应该允许开发人员随意将它们混合在一起 链接 C 和 C 目标文件时是否存在任何复杂情况 像传统上用 C 编写的套接字库之类的东西是否应该保留在 C 中并保存在单独的源文件中 即将 c 代码保存
  • Django CSRF 检查因 Ajax POST 请求而失败

    我可以通过我的 AJAX 帖子获得一些遵守 Django 的 CSRF 保护机制的帮助 我已按照此处的说明进行操作 http docs djangoproject com en dev ref contrib csrf 我已经准确地复制了该
  • ARKit 1.5 如何获取垂直平面的旋转

    我正在尝试垂直平面 并尝试将节点放置在墙上 并根据该垂直平面进行正确的旋转 这是被点击的垂直平面的 ARHitTestResult let hitLocation sceneView hitTest touchPoint types exi
  • 在没有互联网连接的计算机上使用 Scala

    我是 Scala 新手 如果问题绝对显而易见 我很抱歉 我的计算机上安装了 Eclipse Photon 想要编辑 Scala 代码并生成可运行的 jar 棘手的部分是我的计算机 Centos7 无法访问互联网 我记住两个潜在的问题 手动下
  • 如何在具有角度嵌套数据组的材料表中显示拆分标题

    当数据作为对象的嵌套数组出现时 我在材料表中显示数据时遇到问题 我想显示当前显示在 stackblitz 中的表格 如果我用我的更改现有数据newData变量它将开始破坏整个表 谁能指导我如何通过材料表中的一组嵌套数据实现拆分标题功能 我想
  • iPad 上具有自定义尺寸的 SwiftUI Sheet() 模式

    如何使用 SwiftUI 控制 iPad 上模态表的首选演示大小 我很惊讶在谷歌上找到这个问题的答案是多么困难 另外 了解模式是否通过向下拖动 取消 或实际执行自定义积极操作来关闭的最佳方法是什么 以下是我在 iPad 上使用 SwiftU
  • 找出两个缺失的数字

    我们有一台内存为 O 1 的机器 我们想要通过n第一遍中的数字 一个接一个 然后我们排除这两个数字 我们将通过n 2号码到机器 编写一个算法来查找缺失的数字 可以使用 O 1 内存来完成 您只需要几个整数来跟踪一些运行总和 整数不需要 lo
  • Autofac 和 ASP .Net MVC 4 Web API

    我在用Autofac用于我的 ASP Net MVC 4 项目中的 IoC Autofac 在初始化存储库并将其传递到API控制器 我确信我的配置中缺少某些内容 这是我导航到时遇到的错误 https localhost 44305 api
  • 在 Android 上强制执行 Expo 上的 LTR

    我正在使用 React Native 和 Expo 创建一个应用程序 但找不到强制 LTR 从左到右 方向的解决方案 我的一些用户的手机支持 RTL 语言 但我只有英语和挪威语 因此以英语显示 RTL 文本没有意义 我也使用 i18next
  • DbContext配置?

    数据库上下文 public class HaberPortalDB DbContext public DbSet