• Entity Framework


    基本用法(CRUD)

    1.插入:

    // Create entity context
    MyTest2Entities mt = new MyTest2Entities();
    
    // Create an instance of SClass
    SClass sc = new SClass();
    sc.AddTime = DateTime.Now;
    sc.Name = "Class 1";
    
    // Insert the instance into database
    mt.SClasses.Add(sc);
    int count = mt.SaveChanges();
    Console.WriteLine(count.ToString());

    2.修改:

    // Create entity context
    MyTest2Entities mt = new MyTest2Entities();
    
    // Create an instance need modified
    SClass sc = new SClass();
    sc.Id = 2;
    sc.Name = "Kyle";
    sc.AddTime = DateTime.Now;
    
    // Attach the entity need modified
    mt.SClasses.Attach(sc);
    
    // Modify execute status
    mt.Entry(sc).State = System.Data.Entity.EntityState.Modified;
    mt.SaveChanges();

    3.查询:

    #region Multiple record query
    MyTest2Entities mt = new MyTest2Entities();
    
    var classes = from c in mt.SClasses
                    where c.Id < 10
                    select c;
    
    foreach (var item in classes)
    {
        Console.WriteLine(item.Name);
    }
    #endregion
    
    #region Single record query
    MyTest2Entities mt = new MyTest2Entities();
    var single = (from c in mt.SClasses
                    where c.Id == 1
                    select c).FirstOrDefault();
    
    if (single != null)
        Console.WriteLine(single.Name);
    #endregion

    4.删除:

    MyTest2Entities mt = new MyTest2Entities();
    
    SClass sc = new SClass();
    sc.Id = 2;
    
    mt.SClasses.Attach(sc);
    mt.Entry(sc).State = System.Data.Entity.EntityState.Deleted;
    mt.SaveChanges();

    获取主键:

    // TestEntities 继承于 DbContext
    using (var db = new TestEntities())
    {
        var objectContext = ((System.Data.Entity.Infrastructure.IObjectContextAdapter)db).ObjectContext;
        // Brand 是其中一个表
        ObjectSet<Brand> set = objectContext.CreateObjectSet<Brand>();
        //Act
        IEnumerable<string> keyNames = set.EntitySet.ElementType.KeyMembers.Select(k => k.Name);
        Console.WriteLine("{0}", string.Join(",", keyNames.ToArray()));
    }
  • 相关阅读:
    Triangle
    Pascal's Triangle II
    Pascal's Triangle
    Populating Next Right Pointers in Each Node II
    Populating Next Right Pointers in Each Node
    [c++]this指针理解
    [oracle]一个最简单的oracle存储过程"proc_helloworld"
    Oracle 的 INSERT ALL和INSERT FIRST
    Linux2.6 内核的 Initrd 机制解析
    /boot/grub/menu.lst详解
  • 原文地址:https://www.cnblogs.com/jizhiqiliao/p/10905614.html
Copyright © 2020-2023  润新知