zoukankan      html  css  js  c++  java
  • 编程笔记提要

    bootstrap之navbar  : https://www.cnblogs.com/jipinglong/p/9032640.html

    在页面上可以用@Styles.Render("~/Content/css") 来加载css,首先要在App_Start 里面BundleConfig.cs 文件里面 添加要包含的css文件

    cshtml文件:*.c文件只要传递一个Dictionary,而在cshtml文件不要@ using模型

    @foreach (string key in Model.Keys)
    {
    <tr>
    <th>@key</th>
    <td>@Model[key]</td>
    </tr>
    }

    ASP.NET Identity

    Web.config中:
    <add key="owin:AppStartup" value="UsersManagement.IdentityConfig" /> IdentityConfig的名空间
    数据库连接字符串

    创建 User 类
    创建 Database Context 类
    创建User Manger 类
    创建OWIN Startup 类IdentityConfig
    添加验证:
    CustomPasswordValidator
    CustomUserValidator

    用户adddelete

    使用Katana进行身份验证UseCookieAuthentication

    添加用户并实现身份验证Login(LoginModel model,string returnUrl)

    未登录请求重定向

    app.UseCookieAuthentication(new CookieAuthenticationOptions()
    {
      AuthenticationScheme = "MyCookieMiddlewareInstance",
      LoginPath = new PathString("/Account/Login/"),
      AccessDeniedPath = new PathString("/Account/Forbidden/"),
      AutomaticAuthenticate = true,
      AutomaticChallenge = true
    });

    Code First 数据库建立及初始化:

    namespace EFTest.DAL
    {
        public class SchoolContext : DbContext
        {
            public SchoolContext() : base("SchoolContext")  //数据库连接
            {
            }
            public DbSet<Student> Students { get; set; }     //DbSet<T>定义数据库模型
            public DbSet<Enrollment> Enrollments { get; set; }
            public DbSet<Course> Courses { get; set; }
    protected override void OnModelCreating(DbModelBuilder modelBuilder) //用来改变一些约束,例如表名不用变复数、改表名、列名等等 { modelBuilder.Conventions.Remove<PluralizingTableNameConvention>(); } } }

    SchoolInitializer类用来定义数据库在初始化的时候需要做的一些事情;比如通过重载Seed方法预先放入一些数据等

    using System;
    using System.Collections.Generic;
    using EFTest.Models;
    
    namespace EFTest.DAL
    {
        public class SchoolInitializer : System.Data.Entity.DropCreateDatabaseIfModelChanges<SchoolContext>
        {
            protected override void Seed(SchoolContext context)
            {
                var students = new List<Student>
                {
                new Student{FirstMidName="Carson",LastName="Alexander",EnrollmentDate=DateTime.Parse("2005-09-01")},
                new Student{FirstMidName="Meredith",LastName="Alonso",EnrollmentDate=DateTime.Parse("2002-09-01")},
                new Student{FirstMidName="Arturo",LastName="Anand",EnrollmentDate=DateTime.Parse("2003-09-01")},
                new Student{FirstMidName="Gytis",LastName="Barzdukas",EnrollmentDate=DateTime.Parse("2002-09-01")},
                new Student{FirstMidName="Yan",LastName="Li",EnrollmentDate=DateTime.Parse("2002-09-01")},
                new Student{FirstMidName="Peggy",LastName="Justice",EnrollmentDate=DateTime.Parse("2001-09-01")},
                new Student{FirstMidName="Laura",LastName="Norman",EnrollmentDate=DateTime.Parse("2003-09-01")},
                new Student{FirstMidName="Nino",LastName="Olivetto",EnrollmentDate=DateTime.Parse("2005-09-01")}
                };
    
                students.ForEach(s => context.Students.Add(s));
                context.SaveChanges();
    var courses = new List<Course> { new Course{CourseID=1050,Title="Chemistry",Credits=3,}, new Course{CourseID=4022,Title="Microeconomics",Credits=3,}, new Course{CourseID=4041,Title="Macroeconomics",Credits=3,}, new Course{CourseID=1045,Title="Calculus",Credits=4,}, new Course{CourseID=3141,Title="Trigonometry",Credits=4,}, new Course{CourseID=2021,Title="Composition",Credits=3,}, new Course{CourseID=2042,Title="Literature",Credits=4,} }; courses.ForEach(s => context.Courses.Add(s)); context.SaveChanges();
    var enrollments = new List<Enrollment> { new Enrollment{StudentID=1,CourseID=1050,Grade=Grade.A}, new Enrollment{StudentID=1,CourseID=4022,Grade=Grade.C}, new Enrollment{StudentID=1,CourseID=4041,Grade=Grade.B}, new Enrollment{StudentID=2,CourseID=1045,Grade=Grade.B}, new Enrollment{StudentID=2,CourseID=3141,Grade=Grade.F}, new Enrollment{StudentID=2,CourseID=2021,Grade=Grade.F}, new Enrollment{StudentID=3,CourseID=1050}, new Enrollment{StudentID=4,CourseID=1050,}, new Enrollment{StudentID=4,CourseID=4022,Grade=Grade.F}, new Enrollment{StudentID=5,CourseID=4041,Grade=Grade.C}, new Enrollment{StudentID=6,CourseID=1045}, new Enrollment{StudentID=7,CourseID=3141,Grade=Grade.A}, }; enrollments.ForEach(s => context.Enrollments.Add(s)); context.SaveChanges(); } } }

    初始化数据库方法1:

    1、在Web.config 中定义:

    在<entityFramework>节点中,增加<contexts>节点,分别定义<context>的type ,以及初始化<databaseInitializer>的type:  (具体为啥这样定义,只能以后看原理。。。)

    <entityFramework>
        <contexts>
          <context type="EFTest.DAL.SchoolContext, EFTest">
            <databaseInitializer type="EFTest.DAL.SchoolInitializer, EFTest" />
          </context>
        </contexts>
        <defaultConnectionFactory type="System.Data.Entity.Infrastructure.LocalDbConnectionFactory, EntityFramework">
          <parameters>
            <parameter value="mssqllocaldb" />
          </parameters>
        </defaultConnectionFactory>
        <providers>
          <provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
        </providers>
      </entityFramework>

    这种方法只有在操作数据库读写时才会建立,例如加一个访问代码

    using EFTest.DAL;
    using System.Linq;
    using System.Web.Mvc;
    
    namespace EFTest.Controllers
    {
        public class StudentController : Controller
        {
            private SchoolContext db = new SchoolContext();
    // GET: Student
            public ActionResult Index()
            {
                return View(db.Students.ToList());
            }
        }
    }

    初始化数据库方法2:

     2、在Global.asax中执行初始化;在Application_Start()方法中,最后加上以下数据库初始化代码:

      Database.SetInitializer<SchoolContext>(new SchoolInitializer());

    另外有:
        public class EFDbContext : DbContext
        {
            public DbSet<User> Users { get; set; }
            public DbSet<Role> Roles { get; set; }
            public DbSet<UserRoleRelation> UserRoleRelations { get; set; }
            public DbSet<UserConfig> UserConfig { get; set; }
            public EFDbContext()
                : base("DefaultConnection")
            {
                Database.CreateIfNotExists();// 如果数据库不存在则创建
            }
        }
  • 相关阅读:
    一道sql面试题
    Jedis操作redis入门
    SparkStreaming以Direct的方式对接Kafka
    SparkStreaming基于Receiver的方式对接Kafka
    spark-streaming对接kafka的两种方式
    RDD-aggregateByKey
    RDD-aggregate
    RDD五大特性
    Spark广播变量
    Spark RDD计算每天各省的top3热门广告
  • 原文地址:https://www.cnblogs.com/wfy680/p/12342642.html
Copyright © 2011-2022 走看看