2016-10-09 8 views
0

私はデータベースが新しく、このような状況をどう対処するのかよく分かりません。実行時にテーブルを作成する

Session <- 1:1 -> Document <- 1:1 -> DocumentData 

だから、基本的DocumentDataありDocumentを持っていることは常に1 Sessionがあります:私は3つのテーブルがこのように接続されています。

私はタイプDateTimeの3列のDocumentDataInt32Int32を持つことができます例えばので、DocumentDataに異なるタイプのデータと列を追加できるようにしたいです。そして、、doubleInt32Int32Int32の5つの列を持つ別のテーブルがあります。基本的に何私はつもりは私のコードでこのような何かを持っていることです。DocumentDataがユーザーによって指定されたcsvから生成されるので、各DocumentDataは異なる列で構成されているので

using(var unit = new UnitOfWork(new SessionContext())) 
{ 
    var data = unit.Sessions.GetCurrent().Document.DocumentData;  
    var row = data.Column[0].Rows[5]... etc. 
} 

これがあります。

編集: 実行時にテーブルを作成し、それにどのような列を割り当てるかを知りたい。ですから、私は次のようなことをしたいと思っています:

var doc = new Document(); 
session.Document = doc; 
doc.Columns.Add(new Column() {Rows = rows}); 
doc.Columns.Add(new Column() {Rows = rows2}); 
doc.SaveChanges(); 

そして、異なる列を持つ2番目のテーブルがあります。

EDIT2: 私は、この変換することが、より明確にする:私はデータベースに保存することができるようにado.netエンティティに

public class DocumentData { 
    public List<DocumentColumn> Columns { get; set; } 
} 

public class DocumentColumn { 
    public string ColumnName { get; set; } 
    public List<object> Rows { get; set; } 
} 

を。

+0

私は本当にここで質問を見つけるのに苦労しています。あなたの問題は何ですか? –

+0

私の質問が更新されました。 – FCin

答えて

0

実行時に(dbcontextを介して)SQL文を使用してテーブルを作成できます。私は、データベース/コンテキストが初期化された後、実行時にそのようなテーブルをエンティティ/クラスにバインドすることは可能ではないと思います。

しかし、異なる/変数列をクエリ/選択パラメータとして使用する必要がない場合は、単一のBLOB列でドキュメントクラスをシリアライズしてください。

関連する問題