• Asp.net Core中使用Entity Framework Core CodeFirst


    1.安装对应的包

    "Microsoft.EntityFrameworkCore.Design": "1.1.0",
    "Microsoft.EntityFrameworkCore.SqlServer": "1.1.0",
    "Microsoft.EntityFrameworkCore.SqlServer.Design": "1.0.0",
    "Microsoft.EntityFrameworkCore.Tools": "1.1.0-preview4-final",

    project.json tools节点更新
    "tools": {
            "Microsoft.EntityFrameworkCore.Tools.DotNet": "1.0.0-preview3-final",
            "Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final",
            "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final"
        },
    appsettiongs.json中配置连接串
    "ConnectionStrings": {
            "DefaultDB": "Persist Security Info=True;Data Source=。;User ID=sa;Password=123;DataBase=test;"
        }
    Entity & DbContext
    public class VIP_Info
        {
            public VIP_Info()
            {
    
            }
            
            public Guid Id { get; set; }
            public string Name { get; set; }
    
            public string MobilePhone { get; set; }
            
            public string Sex { get; set; }
            
            public int Score { get; set; }
        }
    public partial class SqlServerDbContext : DbContext
        {
            //方法一
            //public SqlServerDbContext(DbContextOptions<SqlServerDbContext> options)
            //: base(options)
            //{ }
    
            protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
            {
                string connectionString = (string) CacheHelper.CacheValue("sqldbConStr");
                if (string.IsNullOrWhiteSpace(connectionString))
                {
                    var builder = new ConfigurationBuilder().AddJsonFile("appsettings.json", optional: false, reloadOnChange: true);
                    var configuration = builder.Build();
                    connectionString = configuration.GetConnectionString("DefaultDB");
                    CacheHelper.CacheInsertAddMinutes("sqldbConStr", connectionString, 120);
                }
                optionsBuilder.UseSqlServer(connectionString);
            }
    
            protected override void OnModelCreating(ModelBuilder modelBuilder)
            {
                base.OnModelCreating(modelBuilder);
            }
    
            public virtual DbSet<VIP_Info> VIP_Info { get; set; }
        }
    关于数据库连接串的初始化

    一种方式是直接在DBContext的OnConfiguring动态去获取appsettings.json里的链接串,另一种是采用注入的方式,在Startup.cs里配置,各有优劣;上例中采用的是每次动态获取的方式,获取的连接串用全局Cache缓存下,方便下次获取。

    Startup.cs里配置连接串
    public void ConfigureServices(IServiceCollection services)
            {
                services.AddApplicationInsightsTelemetry(Configuration);
    
                services.AddDbContext<SqlServerDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultDB")));
    
                services.AddMvc()
                .AddJsonOptions(options => { options.SerializerSettings.ContractResolver = new DefaultContractResolver(); })
                .AddXmlDataContractSerializerFormatters();
    
            }
    public partial class SqlServerDbContext : DbContext
        {
            //方法一
            public SqlServerDbContext(DbContextOptions<SqlServerDbContext> options)
            : base(options)
            { }
    public class VipController : BaseController
        {
            private SqlServerDbContext  _context;
            public VipController(SqlServerDbContext context){
                _context=context;
            }
    
       .....
  • 相关阅读:
    SPOJ-BRCKTS (括号序列,线段树)
    bzoj 2223 [Coci 2009]PATULJCI
    bzoj 1049 [HAOI2006]数字序列
    bzoj2091 [Poi2010]The Minima Game
    bzoj 1016 [JSOI2008]最小生成树计数
    bzoj5105 晨跑 数论lcm
    bzoj 1211 [HNOI2004]树的计数
    bzoj 1430 小猴打架 prufer 性质
    Swing界面组件的通用属性
    数字调节控件JSpinner的使用
  • 原文地址:https://www.cnblogs.com/qidian10/p/6099652.html
Copyright © 2020-2023  润新知