Entity Framework开发模式之Code First示例

1.创建实体类

Person.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace ConsoleApplication1
{
    [Table("Person")]
    public partial class Person
    {
        public Person()
        {
            this.Pet = new HashSet<Pet>();
        }

        [Key]
        public int Id { get; set; }
        public string Name { get; set; }

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

Pet.cs:
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;

namespace ConsoleApplication1
{
    [Table("Pet")]
    public partial class Pet
    {
        [Key]
        public int Id { get; set; }
        [ForeignKey("Person")] //TableName
        public Nullable<int> Pid { get; set; }
        public string Name { get; set; }

        public virtual Person Person { get; set; }
    }
}

2.创建上下文对象类

using System;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;

namespace ConsoleApplication1
{  
    public partial class testContext : DbContext
    {
        public testContext()
            : base("name=testContext")
        {
        }

        public DbSet<Person> Person { get; set; }
        public DbSet<Pet> Pet { get; set; }
    }
}

3.修改配置文件

增加数据库连接字符串节点:
<add name="testContext" connectionString="Data Source=(local);Initial Catalog=test;Persist Security Info=True;User ID=sa;Password=sa111;MultipleActiveResultSets=True" providerName="System.Data.SqlClient" />

4.数据增删改查示例

using (testContext db = new testContext())
{
    //新增
    var person1 = new Person() { Name = "Lily" };
    db.Person.Add(person1);
    var person2 = new Person() { Name = "LiLei" };
    db.Person.Add(person2);
    db.SaveChanges();

    //修改
    var person3 = db.Person.Where(item => item.Id == 1).FirstOrDefault();
    person3.Name = "Lucy";
    db.SaveChanges();

    //遍历
    var data = db.Person;
    foreach (var item in data)
    {
        Console.WriteLine("{0},{1}", item.Id, item.Name);
    }

    //删除
    var person4 = db.Person.Where(item => item.Name == "LiLei").FirstOrDefault();
    db.Person.Remove(person4);
    db.SaveChanges();
}



说明:虽称为Code First,但在实际使用时,大都使用Entity Framework Power Tools工具从现有数据库生成代码。

评论: 0 | 引用: 0 | 查看次数: 6120
发表评论
登录后再发表评论!