/// <summary>
/// DbModelBuilder is used to map CLR classes to a database schema.
/// This code centric approach to building an Entity Data Model (EDM) model is known as 'Code First'.
/// </summary>
public partial class DataModel : DbContext, IDisposable
{
private static DbCompiledModel adminModel = CreateModel(admin: true);
private static DbCompiledModel publicModel = CreateModel(admin: false);
public DataModel()
: base(publicModel)
{
//Output SQL
Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
}
public DataModel(string rpsdbConnectionString, bool admin = false)
: base(rpsdbConnectionString, admin ? adminModel : publicModel)
{
//Output SQL
Database.Log = s => System.Diagnostics.Debug.WriteLine(s);
}
public virtual IDbSet<Student> Students { get; set; }
public virtual IDbSet<Teacher> Teachers { get; set; }
private static DbCompiledModel CreateModel(bool admin)
{
DbModelBuilder modelBuilder = new DbModelBuilder();
modelBuilder.Entity<Student>().ToTable("Student");
modelBuilder.Entity<Teacher>().ToTable(admin ? "vwTeacher" : "Teacher");
modelBuilder.Entity<Teacher>()
.HasMany(e => e.Student)
.WithOptional(e => e.Parent)
.HasForeignKey(e => e.ParentCategoryID);
return modelBuilder.Build(new DbProviderInfo("System.Data.SqlClient", "2008")).Compile();
}
}
C#API service EF 打印出DB查询语句
最新推荐文章于 2025-04-04 06:30:00 发布