多対1の関係をマップしようとしています。私は私が近くにいるが、かなりそこにいると感じる。 Data
表には多くのデータレコードを保持している表示するテーブル関係を多対1にマッピング
SensorId
FK_LocationId
Name
etc...
:
私はこのセンサーテーブルを持っています。
DataId
FK_SensorId
Time
Value
私はこのためのモデルを作成しようとしています。
public class DataSensor
{
public int Id { get; set; }
public int DataNodeId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public bool active;
public bool alarm;
}
public class GatheredData
{
public int Id { get; set; }
public int DataSensorId { get; set; }
public DateTime Time { get; set; }
public float value { get; set; }
[ForeignKey("DataSensorId")]
public virtual DataSensor datasensor { get; set; }
}
少なくとも私の心の中では、それは実際には逆の方法でなければなりません。センサがList<Data>
を保持するが、センサにそれをリンクするFKがない場合。 A Data
レコードは、そのセンサーのFKによってセンサーにマップされます。
私はここに直面してる問題は、私は今、私の見解では、このラインを持っているだろうということです。
@model IEnumerable<DataVisualization.Models.Data>
、代わりの情報を表示し、データを表示するために私のセンサーをループ(最終的にはチャート)。私はすべてのデータをループしなければならず、どうにかしてそれをどのように整理してからそれを表示する必要があります。
@model IEnumerable<DataVisualization.Models.DataSensor>
をしかし、それはその私の知る限りのいずれかを公開しないData
とDataSensor
であるので、これは私に、データへのアクセス権を与えるものではありません。だから私はまだ必要があります。
@model IEnumerable<DataVisualization.Models.DataViewModel>
これはエレガントな方法に見えたが、私はそれを動作させることができませんでした:
public class DataViewModel
{
public DataSensor dataSensor { get; set; }
public List<GatheredData> gatheredData { get; set; }
}
そして、私のビューが必要になります。だから私は、それらを一緒にマッピングしたクラスのsomekindについて考えました。これはDbContext
にpublic DbSet<DataViewModel> dataViewModel { get; set; }
が必要で、それがデータベースに厄介なテーブルを生成するためです。
モデルを作成する方法についてのヘルプは、コントローラでそれを操作し、ビューに表示すると大変感謝します。
編集
このモデルについて、私はこれに接続されたデータへのアクセス権を持っていますか?
public class DataSensor
{
[Key]
public int Id { get; set; }
public int DataNodeId { get; set; }
public string Name { get; set; }
public string Description { get; set; }
public bool active;
public bool alarm;
public virtual ICollection<DataSensor> Data { get; set; }
}
しかし、これは、データベーステーブル内の列DataSensor_Id
を作成します。これは明らかに望ましくないことです。それは1対1になるからです。
ありがとうございますが、私はAPIの必要性はないと思います。私は単に非常に共通の関係を作りたいだけです。ユーザーが多くのトランザクションを実行できるように、これらのトランザクションはデータベース内のユーザーにマッピングされます。 – Madmenyo
あなたが既に引っ張っているデータベースを持っているなら、あなたはこれを間違った方向に行っているかもしれないと思います。あなたがしようとしているのは、データベースから取り出して値を表示するだけであれば、これを行うもっと簡単な方法があります。これがあなたがしようとしていることであれば私に教えてください。私はそれに応じて私の答えを変えます。 –
はい、すべてのセンサーを特定の場所から引き出し、そのセンサーに属するすべてのデータを取得したいだけです。データとすべてのセンサ情報/詳細はDBに保存されます。 – Madmenyo