2017-02-27 13 views
3

私はBigDataOverviewと呼ばれるデータベーススキーマを持っています。私のアプリケーションのほとんどは既にAdminDbという別のスキーマに接続されています。.Net CoreでDevOpsのコントローラを作成する

また、私のAdminDbスキーマによく統合された.Netコアアプリケーションがあります。

私のセカンダリスキーマには、名前が「SimpleDataOverview」という名前の1つのテーブルと名前の付いた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"))); 

私は、Entity Frameworkのを使用して、ビューのControllerを作成しようとすると、

ただし、Visual Studioは、次のエラーメッセージが表示されて文句を言うだろう:

enter image description here

そして私は私が信じている....私は」どんな援助にも非常に感謝しています。

答えて

2

EFで複数のテーブルを持つクラスを使用することはできません。たぶんそれはあなたのエラーの原因ですか? テーブルで、親クラスと子供1名を作成するようにしてください:

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

関連する問題