C# 实体模型EF关联数据库

原创 2016年05月31日 10:20:15


首先 我们要有对应的数据库 实体对象 也就是类对象

//实体对象类  Model

    public class product
    {
        /// <summary>
        /// 商品信息id  主键
        /// </summary>		

        //[DatabaseGenerated(DatabaseGeneratedOption.None)]  去除自增长
        [ProductComm]
        public long id
        {
            get;
            set;
        }

        [ProductComm]
        public string name
        {
            get;
            set;
        }
        /// <summary>
        /// 创建时间
        /// </summary>		
        public DateTime ctime
        {
            get;
            set;
        }
        /// <summary>
        /// 0正常  1已删除
        /// </summary>		

        public int s
        {
            get;
            set;
        }

        [NotMapped]
        public string username { get; set; }
    }



那么如何去关联数据库呢 

  首先我们要继承DBconent并配置  

前提我们引用 这几个对象

using System.Data.Entity;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration;


    public class ConnectionData : DbContext
    {
        public ConnectionData()
            //数据库配置对象名称
            : base("mobileConnection")
        {
            //this.Database.Log = Logger.Debug; //这里可以记录日志
        }
        /// <summary>
        /// 数据库对象 对应
        /// </summary>
        public virtual IDbSet<product> ProductInfo { get; set; }

        /// <summary>
        /// 重写  模型创建方法
        /// </summary>
        /// <param name="modelBuilder"></param>

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            // TODO: 在这里写Fluent API
            //公约
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            modelBuilder.Conventions.Remove<IncludeMetadataConvention>();

            
            //var s = new EntityTypeConfiguration<product>();
            //s.ToTable("product");
            //s.Property(q => q.username).HasColumnName("name");
            //s.Property(q => q.name).HasColumnName("name");
            //modelBuilder.Entity<product>().HasKey(t => t.id);
            //modelBuilder.Entity<product>().Ignore(t => t.username);
            //modelBuilder.Configurations.Add(s);
            //关联到配置方法
            AddEntityMapping(modelBuilder);
            //....
            base.OnModelCreating(modelBuilder);

        }
        /// <summary>
        /// 制定类对类对象进行配置
        /// </summary>
        /// <param name="modelBuilder"></param>
        private void AddEntityMapping(DbModelBuilder modelBuilder)
        {
            modelBuilder.Configurations.Add(new ProductMapping());
        }

    }


对类对象进行构造 指定表名 主键名称 长度 等等规则 这里不一一列举 需要的同学自己去查 

    public class ProductMapping : EntityTypeConfiguration<product>
    {
        public ProductMapping()
        {
            this.ToTable("product");
            this.HasKey(x => x.id);
            this.Property(x => x.name).HasMaxLength(50);
            //this.HasRequired(x => x.Member).WithMany().HasForeignKey(x => x.MemberId);
        }
    }


那么到了上面这一步 我们的数据库 已经和ConnectionData 类 相互关联起来了 那么我们现在要做的 只是使用它而已

        public List<product> GetproductInfo()
        {
            ConnectionData c = new ConnectionData();
            var datas= c.ProductInfo.Where(q => q.id == 1).ToList();
            return datas;
        }
到了这里 我们已经取出你的实体对象对应的数据库对象了。




EF映射之修改数据库

EF映射之修改数据库           这里使用的是DataBaseFirst,当我们开始开发之后,由于个别需求的变动,或者由于之前设计数据库的不合理,需要修改、添加、删除数据表,或者其中的一些...
  • nangeali
  • nangeali
  • 2017年04月08日 10:36
  • 801

EF性能之关联加载

介绍 Entity Framework作为一个优秀的ORM框架,它使得操作数据库就像操作内存中的数据一样,但是这种抽象是有性能代价的,故鱼和熊掌不能兼得。但是,通过对EF的学习,可以避免不必要的性能...
  • xingxing513234072
  • xingxing513234072
  • 2014年05月13日 16:53
  • 1129

C#实体模型增删改查

namespace ConsoleApplication7 { class Program { static void Main(string[] args) ...
  • sq1018
  • sq1018
  • 2015年05月24日 12:56
  • 1462

18.C#:VS2010之EF框架添加edmx(自动跟踪实体生成器):映射到数据库表和代码实体类

在上一篇文章添加好EF数据库模型的基础上,为了生成表结构对应的标准类,使用自动跟踪实体生成器,这里主要记录文件命名注意事项 1.双击.edmx文件,在界面的空白处鼠标右击,选中“添加代码生成项”,选择...
  • xushaozhang
  • xushaozhang
  • 2017年01月19日 20:16
  • 901

用Ado.Net实体数据模型 向sql数据库添加数据

1.添加“Ado.Net实体数据模型”类型的文件到项目zh
  • xuanwuziyou
  • xuanwuziyou
  • 2014年08月01日 15:17
  • 2742

MVC学习笔记一:创建实体数据模型

最近做个新项目,要用到MVC及EntityFramework,由于自己从没搞过这个框架及ORM,所以找了些资料看了下,不过网上关于这两个结合使用的资料也不是太多,我也比较笨,有的写的也看不大懂。想花钱...
  • sudazf
  • sudazf
  • 2013年11月02日 23:46
  • 2478

EF添加和附加实体对象的状态

原文摘自微软网站:http://msdn.microsoft.com/en-us/data/jj592676 This topic will cover how to add and attach ...
  • mole
  • mole
  • 2015年01月04日 21:55
  • 1378

EF映射——从数据库更新实体

最近在做ITOO项目,由于更新了数据库,需要重新从数据库映射到实体,本来看过关于EF的学习资料,直接可以从数据库更新到实体,但这种小事也是有很多问题的,必须在更新的时候做好选择。下面分享一下如何从数据...
  • u013038643
  • u013038643
  • 2015年12月28日 08:57
  • 5650

EF映射——从数据库更新实体

最近在做ITOO项目,由于更新了数据库,需要重新从数据库映射到实体,本来看过关于EF的学习资料,直接可以从数据库更新到实体,但这种小事也是有很多问题的,必须在更新的时候做好选择。下面分享一下如何从数据...
  • LeehomeYU
  • LeehomeYU
  • 2017年06月07日 11:16
  • 539

VS2013下使用创建sqlite的ADO.NET实体数据模型

1. 安装DDEX(aka Data Designer Extensibility) 2. NuGet获取EF6实体最新版本以及获取System.Data.SQLite.EF6 3. 工程修改为x...
  • smilingc
  • smilingc
  • 2016年06月20日 14:39
  • 4138
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C# 实体模型EF关联数据库
举报原因:
原因补充:

(最多只允许输入30个字)