关于实体框架的问题:ID 是否被视为键值?

约西亚斯99

向数据库中添加对象时,EF 是否会自动分配 ID?

例如:当我测试它时,我不知道它是如何工作的,并运行了几次向数据库添加几个对象的代码,但是在检查时,我发现所有的ID都完美地增加了一个,即使我手动设置值

class Program
{
    static void Main(string[] args)
    {
        using (var db = new AulaContext())
        {
            var a = new Aula();
            var b = new Aula();
            var c = new Aula();
            var d = new Aula();
            var e = new Aula();
            var f = new Aula();
            var g = new Aula();
            var h = new Aula();

            a.Id = 0;
            a.Capacidad = 30;
            a.ConexionARed = true;
            a.Proyeccion = true;
            a.Aul = "1.1";
            b.Id = 0;
            b.Capacidad = 30;
            b.ConexionARed = true;
            b.Proyeccion = true;
            b.Aul = "1.2";
            c.Id = 0;
            c.Capacidad = 30;
            c.ConexionARed = true;
            c.Proyeccion = true;
            c.Aul = "1.3";
            d.Id = 0;
            d.Capacidad = 30;
            d.ConexionARed = true;
            d.Proyeccion = true;
            d.Aul = "2.1";
            e.Id = 0;
            e.Capacidad = 30;
            e.ConexionARed = true;
            e.Proyeccion = true;
            e.Aul = "2.2";
            f.Id = 0;
            f.Capacidad = 30;
            f.ConexionARed = true;
            f.Proyeccion = true;
            f.Aul = "2.3";
            g.Id = 0;
            g.Capacidad = 30;
            g.ConexionARed = true;
            g.Proyeccion = true;
            g.Aul = "1.4";
            h.Id = 0;
            h.Capacidad = 30;
            h.ConexionARed = true;
            h.Proyeccion = true;
            h.Aul = "1.5";

            db.Aulas.Add(a);
            db.Aulas.Add(b);
            db.Aulas.Add(c);
            db.Aulas.Add(d);
            db.Aulas.Add(e);
            db.Aulas.Add(f);
            db.Aulas.Add(g);
            db.Aulas.Add(h);
            db.SaveChanges();

            var query = from aul in db.Aulas
                        orderby aul.Id
                        select aul;
            foreach (var item in query)
            {
                Console.WriteLine(item.ToString());
            }
            Console.ReadKey();
        }
    }


}

public class Aula
{
    private int id;
    public int Id { get {return id;} set { id = value; } }

    private int capacidad;
    public int Capacidad { get { return capacidad; } set { capacidad = value; } }

    private bool conexionARed;
    public bool ConexionARed { get { return conexionARed; } set { conexionARed = value; } }

    private bool proyeccion;
    public bool Proyeccion { get { return proyeccion; } set { proyeccion = value; } }

    private string aul;
    public string Aul { get { return aul; } set { aul = value; } }


    public override string ToString()
    {
        return "ID: " + this.id + "\n" +
                "Capacidad: " + this.capacidad + "\n" +
                "Conexion a red: " + this.conexionARed + "\n" +
                "Proyector: " + this.proyeccion + "\n" +
                "Aula: " + this.aul;

    }
}

public class AulaContext : DbContext
{
    public DbSet<Aula> Aulas { get; set; }
}

}

通托

EF 会自动选择 Id 字段作为主键,它可以在没有 Id 字段的情况下选择 AulaID 作为主键。这就是约定优于配置。

但是,您可以通过在 POCO 类或 EF 配置中将某些其他字段标记为表的主键来更改该行为。在没有显式命令的情况下,EF 将使用约定来确定主键。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

实体框架是否由于键值对而加入了部分硬编码的“ on”?

来自分类Dev

.NET框架库是否被视为用户定义的?

来自分类Dev

实体框架ID列问题

来自分类Dev

实体框架核心,是否只返回与Automapper相关的ID?

来自分类Dev

在实体框架中,是否可以将列自动映射到实体属性?ID => [tablename] ID

来自分类Dev

Azure应用程序ID是否被视为秘密令牌

来自分类Dev

Azure应用程序ID是否被视为秘密令牌

来自分类Dev

实体框架:是否有多个dbcontext?和其他一些与性能相关的问题

来自分类Dev

我应该将实体框架视为非托管资源吗?

来自分类Dev

实体框架代码优先方法是否需要SQL Server db_ddladmin权限,这是否存在安全问题?

来自分类Dev

在ES6中,将ExecutionContexts视为JavaScript虚拟机的堆栈框架是否正确?

来自分类Dev

实体框架种子问题

来自分类Dev

实体框架删除问题

来自分类Dev

实体框架部署问题

来自分类Dev

MySQL - 实体框架的问题

来自分类Dev

MVC-实体框架,状态ID必须是数字问题

来自分类Dev

实体框架OneToMany更新项目-缺少外键值

来自分类Dev

首先使用实体框架代码获取外键值

来自分类Dev

实体框架5外键值未更新(VB.NET)

来自分类Dev

在实体框架中将外键值设置回Null

来自分类Dev

首先使用实体框架代码,获取外键值

来自分类Dev

实体框架6是否支持.NET 4.0?

来自分类Dev

实体框架是否支持并行异步查询?

来自分类Dev

实体框架是否自动保存相关类?

来自分类Dev

实体框架是否支持多线程?

来自分类Dev

实体框架中是否存在自动关联?

来自分类Dev

实体框架是否需要预取路径?

来自分类Dev

实体框架是否检查冗余的OrderBy()方法

来自分类Dev

实体框架(5)是否对尚未实际编辑的实体执行UPDATE

Related 相关文章

  1. 1

    实体框架是否由于键值对而加入了部分硬编码的“ on”?

  2. 2

    .NET框架库是否被视为用户定义的?

  3. 3

    实体框架ID列问题

  4. 4

    实体框架核心,是否只返回与Automapper相关的ID?

  5. 5

    在实体框架中,是否可以将列自动映射到实体属性?ID => [tablename] ID

  6. 6

    Azure应用程序ID是否被视为秘密令牌

  7. 7

    Azure应用程序ID是否被视为秘密令牌

  8. 8

    实体框架:是否有多个dbcontext?和其他一些与性能相关的问题

  9. 9

    我应该将实体框架视为非托管资源吗?

  10. 10

    实体框架代码优先方法是否需要SQL Server db_ddladmin权限,这是否存在安全问题?

  11. 11

    在ES6中,将ExecutionContexts视为JavaScript虚拟机的堆栈框架是否正确?

  12. 12

    实体框架种子问题

  13. 13

    实体框架删除问题

  14. 14

    实体框架部署问题

  15. 15

    MySQL - 实体框架的问题

  16. 16

    MVC-实体框架,状态ID必须是数字问题

  17. 17

    实体框架OneToMany更新项目-缺少外键值

  18. 18

    首先使用实体框架代码获取外键值

  19. 19

    实体框架5外键值未更新(VB.NET)

  20. 20

    在实体框架中将外键值设置回Null

  21. 21

    首先使用实体框架代码,获取外键值

  22. 22

    实体框架6是否支持.NET 4.0?

  23. 23

    实体框架是否支持并行异步查询?

  24. 24

    实体框架是否自动保存相关类?

  25. 25

    实体框架是否支持多线程?

  26. 26

    实体框架中是否存在自动关联?

  27. 27

    实体框架是否需要预取路径?

  28. 28

    实体框架是否检查冗余的OrderBy()方法

  29. 29

    实体框架(5)是否对尚未实际编辑的实体执行UPDATE

热门标签

归档