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 积分,解读结果公开显示在下面。
还没有人解读过这个文件。
