zoukankan      html  css  js  c++  java
  • 手动写Entity Framework 数据库上下文和Model实体

    1、引用EF对应的程序集

    使用命令安装EntityFramework包
    Install-Package EntityFramework

    Entity Framework简单目录:

    1.context数据库上下文class:

    using System;
    using System.Collections.Generic;
    using System.Data.Entity;
    using System.Data.Entity.Infrastructure;
    using System.Linq;
    using System.Web;
    
    namespace ClothMvcApp.EF
    {
        public class ClothDBContext: DbContext, IDisposable
        {
            public ClothDBContext()
                : base("name=ClothDBContext")
            {
            }
    
            protected override void OnModelCreating(DbModelBuilder modelBuilder)
            {
                base.OnModelCreating(modelBuilder);
            }
    
            public DbSet<News> News { get; set; }
            public DbSet<Product> Product { get; set; }
            public DbSet<SysUser> SysUser { get; set; }
    
            public DbSet<Brand> Brand { get; set; }
    
            public DbSet<ImageInfo> ImageInfo { get; set; }
    
            public DbSet<Contact> Contact { get; set; }
        }
    }

    2.Model实体类:

    添加所需程序集:

    Install-Package System.ComponentModel.Annotations

    如下图:

    using System;
    using System.Collections.Generic;
    using System.ComponentModel.DataAnnotations.Schema;
    using System.Linq;
    using System.Web;
    
    namespace ClothMvcApp.EF
    {
        [Table("Brand")]
        public class Brand
        {
            [Column("Id")]
            public Guid Id { get; set; }
    
            [Column("Content")]
            public string Content { get; set; }
    
            [Column("Picture")]
            public string Picture { get; set; }
    
            [Column("CreateTime")]
            public DateTime CreateTime { get; set; }
        }
    }

    有外键字段Model:

    using System;
    using System.ComponentModel.DataAnnotations;
    using System.ComponentModel.DataAnnotations.Schema;
    
    namespace Lemon.Media.Entities
    {
        /// <summary>
        /// 渠道应用
        /// </summary>
         [Table("Channel_Apps")]
       public  class ChannelApp
        {
             [Key, Column("Id")]
            public Guid Id { get; set; }
    
             /// <summary>
             /// 渠道ID(主要指物业)
             /// </summary>
             [Column("ChannelId")]
            public int ChannelId { get; set; }
    
             /// <summary>
             /// 是否由H5承载实现
             /// </summary>
             [Column("IsH5")]
             public bool IsH5 { get; set; }
    
             /// <summary>
             /// App应用唯一标识
             /// </summary>
             [Column("AppKey")]
            public string AppKey { get; set; }
    
             /// <summary>
             /// 添加时间
             /// </summary>
             [Column("AddTime")]
            public DateTime AddTime { get; set; }
    
             /// <summary>
             /// 是否删除
             /// </summary>
             [Column("IsDel")]
            public bool IsDel { get; set; }
    
             /// <summary>
             /// 是否需要PPTV
             /// </summary>
             [Column("HasPPTV")]
             public bool HasPPTV { get; set; }
    
             /// <summary>
             /// 渠道
             /// </summary>
             [ForeignKey("ChannelId")]
             public virtual Channel Channel { get; set; }
        }
    }

    3.web.config 数据库连接字符串:

    <connectionStrings>
        
        <add name="ClothDBContext" connectionString="Data Source=.;Initial Catalog=ClothDB;User ID=sa;Password=123456;Pooling=true;" providerName="System.Data.SqlClient" />
      </connectionStrings>

    4.简单的调用方式:

    using (var context = new ClothDBEntities())
                {
                    context.ImageInfo.Where(c => c.Cate == "banner").OrderByDescending(c => c.CreateTime).Take(3).ToList();
                }

     ps:卸载nuget包:

    Uninstall-Package System.ComponentModel.Annotations

  • 相关阅读:
    【转】C#控件——DataGridView单元格文本自动换行
    【转】右键的 在 vs 中打开 怎么去掉
    【转】C#使用Oracle.ManagedDataAccess.dll
    C#委托笔记
    【转】检索 COM 类工厂中 CLSID 为 {00024500-0000-0000-C000-000000000046} 的组件失败,原因是出现以下错误: 80070005 拒绝访问
    js创建ActiveXObject无效
    ASPxGridView编辑时弹出的editform值不是当前行值的原因
    ASPxGridView后台实现隐藏新增按钮
    oracle闪回存储过程
    oracle重新编译所有invalid objects
  • 原文地址:https://www.cnblogs.com/zoro-zero/p/5680700.html
Copyright © 2011-2022 走看看