zoukankan      html  css  js  c++  java
  • EF6 SqlServer 简单例子 和 支持的原生sql例子

    总体结构如图:
     
     
     

    1. 使用NuGet添加EF6

    2. 添加实体Model

        public class User_Model {
            public int ID { getset; }
            public string S_UserID { getset; }
            public int Sex { getset; }
            public string Phone { getset; }
            public int Age { getset; }
            public DateTime? AddDateTime { getset; }
            public DateTime? UpdDateTime { getset; }
        }  
     
    3. 创建Map(Model成员约束)
     
        public class User_Map : EntityTypeConfiguration<Model.User_Model> {
            public User_Map() {
                ToTable("3660_kangwl.Users");//自定义表名
                this.HasKey(u => u.ID);//主键
                this.Property(u => u.ID).HasDatabaseGeneratedOption(DatabaseGeneratedOption.Identity);//自增张字段
                this.Property(u => u.AddDateTime).HasColumnName("Add_DateTime").IsRequired();
                this.Property(u => u.S_UserID).HasColumnName("S_User_ID");
                this.Property(u => u.UpdDateTime).HasColumnName("Update_DateTime").IsOptional();
            }
        }  
     
    4. 创建数据库上下文 Context
     
        public class Smile : DbContext {
            public Smile() :base() {
                Database.Connection.ConnectionString =
                    System.Configuration.ConfigurationManager.ConnectionStrings["smile"].ConnectionString;
                Database.SetInitializer(new NullDatabaseInitializer<Smile>());
            }
            public DbSet<Model.User_Model> User { getset; }
     
            protected override void OnModelCreating(DbModelBuilder modelBuilder) {
                modelBuilder.Configurations.Add(new User_Map());
                base.OnModelCreating(modelBuilder);
            }
        } 
     
    5. 操作代码
     
       class Program
        {
            private static void Main(string[] args) {
                Smile smile = new Smile();
                var users = smile.User;
                foreach (User_Model user in users) {
                    Console.WriteLine(user.S_UserID);
                }
                //由于加了实体与数据库字段映射
                //下面的sql查询用了as转换成映射字段,否则取不出来的
                //切记,切记
                //Add_DateTime(数据库字段),AddDateTime(映射字段)
                var rawSqlUsers =
                    smile.Database.SqlQuery<Model.User_Model>(
                        "select id,s_user_id as S_UserID,Sex,Phone,Age,Add_DateTime as AddDateTime,update_datetime as UpdDateTime from users");
                foreach (User_Model user in rawSqlUsers) {
                    Console.WriteLine(user.ID);
                }
                //command指令如下
                //参数id=@p0 
                int ret = smile.Database.ExecuteSqlCommand("update users set age=-1 where id=@p0", 2);
                Console.WriteLine(ret > 0);
                //两个参数
                int ret1 = smile.Database.ExecuteSqlCommand("update users set age=-1 where id=@p0 and s_user_id=@p1", 12,"kangwl");
                Console.WriteLine(ret > 0);
     
                var auser =
                    smile.Database.SqlQuery<Model.User_Model>(
                        "select id,s_user_id as S_UserID,Sex,Phone,Age,Add_DateTime as AddDateTime,update_datetime as UpdDateTime from users where id=@p0",
                        12);
     
           
                Console.WriteLine(auser.First().Age);
     
                Console.Read();
            }
        }  
     
    6. show 一下配置文件
     
    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
      <configSections>
        <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
        <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
      </configSections>
      <connectionStrings>
        <add name="smile" connectionString="server=smile.xxx.xxx;database=3660_smile;uid=3660_kangwl;pwd=xxxxx;" providerName="System.Data.SqlClient"/>
      </connectionStrings>
      <entityFramework>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="v11.0" />
          </parameters>
        </defaultConnectionFactory>
        <providers>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
        </providers>
      </entityFramework>
    </configuration> 
     





  • 相关阅读:
    C语言中的字符串处理库函数介绍与实现
    尾声,毕业设计答辩
    《算法图解》第六章笔记_广度优先搜索
    《算法图解》第五章笔记与课后练习_散列函数与散列表
    《算法图解》第四章笔记与课后练习_快速排序算法
    《算法图解》第三章笔记与课后练习_递归
    c# 执行javascript 脚本
    HttpWebRequest出错 服务器提交了协议冲突. Section=ResponseHeader Detail=CR 后面必须是 LF
    秒转换成时分秒
    SQL2008中Merge的用法
  • 原文地址:https://www.cnblogs.com/kangwl/p/d440420eb9285be30e841b98e3ab91e4.html
Copyright © 2011-2022 走看看