3

나는 BigDataOverview로 알려진 데이터베이스 스키마를 가지고 있습니다. 내 응용 프로그램의 대부분은 이미 AdminDb라는 다른 스키마에 연결되어 있습니다..Net Core에서 DevOps 용 컨트롤러 만들기

나는 또한 내 AdminDb 스키마와 잘 통합 된 .Net 핵심 응용 프로그램을 가지고 있습니다.

내 보조 스키마에 숫자로 이름이 지정되고 "SimpleDataOverview"라는 단일 테이블로 이름이 지정된 13 개의 테이블이 있습니다.

이제이 보조 스키마를 내 응용 프로그램에 추가하여 { get; } 데이터를 내 응용 프로그램에 표시 할 수 있습니다.

appsettings.json 내 ConnectionString을 설정 한 :

"ConnectionStrings": { 
    "DefaultConnection":"server=<placeholder>;database=AdminDB;sslmode=none;", 
    "OverviewDataConnection": "server=<placeholder>;database=BigDataOverview;sslmode=none;" 
} 

이름 필드 (열)의 측면에서 서로 동일로 번호가 13 개 테이블의 모든. NumberTableModel.cs

public class NumberTableModel 
{ 
    [Key] 
    public int RowID { get; } 

    public int SensorID { get; } 
    public DateTime ReadingDate { get; } 
    public int ReadingCount { get; } 
    public float ApproxDataSize { get; } 
    public Time ReadingTime { get; } 
    public string JsonData { get; } 
    public long LastUpdate { get; } 
    public string Source { get; } 
} 

나는 또한 DbContext 만든 : 그러므로 나는 그들 모두와 일치하는 모델을 만든 DevOpsDbContext

public class DevOpsDbContext : DbContext 
{ 
    public DevOpsDbContext(DbContextOptions<DevOpsDbContext> options) : base(options) 
    { 
    } 

    public DbSet<NumberTableModel> _353224061929963 { get; set; } 
    public DbSet<NumberTableModel> _353224061929964 { get; set; } 
    public DbSet<NumberTableModel> _353224061929965 { get; set; } 

    protected override void OnModelCreating(ModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<NumberTableModel>().ToTable("353224061929963"); 
     modelBuilder.Entity<NumberTableModel>().ToTable("353224061929964"); 
     modelBuilder.Entity<NumberTableModel>().ToTable("353224061929965"); 
    } 
} 

을 그리고 난 그것을 설정 한 내 Startup.cs :

services.AddDbContext<DevOpsDbContext>(options => 
    options.UseMySql(Configuration.GetConnectionString("OverviewDataConnection"))); 

나는 '....

enter image description here

을 그리고 난 내가 생각 : 내가 엔티티 프레임 워크를 사용하여, 경관을 감상 할 수있는 Controller을 만들려고 할 때

그러나 Visual Studio는 다음과 같은 오류 메시지와 함께 불평 할 것이다 어떤 도움을 주셔서 감사드립니다.

답변

2

EF에서 하나의 클래스를 여러 테이블과 함께 사용할 수 있다고 생각하지 않습니다. 어쩌면 그것은 당신의 실수의 근원일까요? 테이블에 의해 부모 클래스와 하나의 아이를 만들어보십시오 :

public abstract class NumberTableModel 
{ 
    [Key] 
    public int RowID { get; } 

    public int SensorID { get; } 
    public DateTime ReadingDate { get; } 
    public int ReadingCount { get; } 
    public float ApproxDataSize { get; } 
    public Time ReadingTime { get; } 
    public string JsonData { get; } 
    public long LastUpdate { get; } 
    public string Source { get; } 
} 

public class NumberTableModel1 : NumberTableModel { } 

public class NumberTableModel2: NumberTableModel { } 

public class NumberTableModel3: NumberTableModel { } 

그리고 당신의 DevOpsDbContext에 : 나는 최대한 빨리 시간을 가지고 이것을 시도 할 것이다

public class DevOpsDbContext : DbContext 
{ 
    public DevOpsDbContext(DbContextOptions<DevOpsDbContext> options) : base(options) 
    { 
    } 

    public DbSet<NumberTableModel1> _353224061929963 { get; set; } 
    public DbSet<NumberTableModel2> _353224061929964 { get; set; } 
    public DbSet<NumberTableModel3> _353224061929965 { get; set; } 

    protected override void OnModelCreating(ModelBuilder modelBuilder) 
    { 
     modelBuilder.Entity<NumberTableModel1>().ToTable("353224061929963"); 
     modelBuilder.Entity<NumberTableModel2>().ToTable("353224061929964"); 
     modelBuilder.Entity<NumberTableModel3>().ToTable("353224061929965"); 
    } 
} 
+0

. 감사! 문제가 해결되면 알려 드리겠습니다. – Zeliax

관련 문제