MemberManagement/Context/MyContext.cs

(开头部分) 3KB

这里只显示每个文件的开头 60 行。登录后可以解锁完整代码。

using MemberManagement.Attributes;
using MemberManagement.Common;
using MemberManagement.Entity;
using MemberManagement.Extensions;
using MySql.Data.EntityFramework;
using System;
using System.Collections.Generic;
using System.Data.Entity;
using System.Data.Entity.Infrastructure;
using System.Data.Entity.ModelConfiguration.Conventions;
using System.Data.Entity.Validation;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MemberManagement.Context
{
    [DbConfigurationType(typeof(MySqlEFConfiguration))]
    public class MyContext : DbContext
    {

        public MyContext() : base("name=DefaultConnString")
        {
            Database.SetInitializer(new SeedDataInitializer());
        }

        protected override void OnModelCreating(DbModelBuilder modelBuilder)
        {
            //移除EF映射默认给表名添加“s“或者“es”
            modelBuilder.Conventions.Remove<PluralizingTableNameConvention>();
            //添加精度控制
            modelBuilder.Conventions.Add(new DecimalPrecisionAttributeConvention());
            base.OnModelCreating(modelBuilder);
        }

        /// <summary>
        /// 模型验证出错时抛出异常
        /// </summary>
        /// <returns></returns>
        public override int SaveChanges()
        {
            try
            {
                return base.SaveChanges();
            }
            catch (DbEntityValidationException ex)
            {
                var errMsg = ex.EntityValidationErrors.SelectMany(o => o.ValidationErrors).Select(o => o.ErrorMessage);
                var fullErrMsg = ex.Message + ":" + string.Join(";", errMsg);
                throw new DbEntityValidationException(fullErrMsg, ex.EntityValidationErrors);
            }
        }

        public DbSet<Member> Member { get; set; }
        public DbSet<SysConfig> SysConfig { get; set; }
        public DbSet<Recharge> Recharge { get; set; }

        internal class SeedDataInitializer : CreateDatabaseIfNotExists<MyContext>
        {
            protected override void Seed(MyContext context)
后面还有 38 行代码,解锁后查看完整代码

24 小时内免费解锁 3 个项目,之后 1 积分/个。 规则说明

AI 解读

登录后可用,每次 10 积分,解读结果公开显示在下面。

还没有人解读过这个文件。