Dbcontext

  • 18
  • 0
  • 2025-06-02

Dbcontext

Microsoft.entityframeworkcore.design 、Microsoft.entityframeworkcore.sqlserver、Microsoft.entityframeworkcore.tools 7.0.8

using Microsoft.EntityFrameworkCore;
using NotCompletedSchedule.Models;
using NotCompletedSchedule.ViewModels;

namespace ProjectName
{
   public partial class DBContext : DbContext
   {
       public DBContext()
       {
       }

       public DBContext(DbContextOptions<DBContext> options)
           : base(options)
       {
       }

       public virtual DbSet<自訂ViewModel> Name { get; set; } //sqlCmd 只要欄位對應ViewModel

       protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
       {
           if (!optionsBuilder.IsConfigured)
           {
               optionsBuilder.UseSqlServer("data source=IP or Domain;initial catalog=DataBase;persist security info=True;user id=Account;password=pw;multipleactiveresultsets=True;TrustServerCertificate=true;");
           }
       }

       protected override void OnModelCreating(ModelBuilder modelBuilder)
       {
           modelBuilder.Entity<自訂ViewModel>(e => e.HasNoKey());

           OnModelCreatingPartial(modelBuilder);
       }

       partial void OnModelCreatingPartial(ModelBuilder modelBuilder);
   }
}

//處理大量sql script方式

 List<Microsoft.Data.SqlClient.SqlParameter> parameters = new List<Microsoft.Data.SqlClient.SqlParameter>();

 dbContext.Name.FromSqlRaw<自訂ViewModel>(sqlCmd, parameters.Cast<object>().ToArray()).ToList();