-1

この質問の言い方がよくわかりません。基本的に、データベースには次のようなテーブルがあります。

 Table1
 _________
|id       |
|_________|
|services |
|_________|
|solutions|
|_________|

しかし、私のモデルでは、3つのオブジェクトにマップしようとしています。

class studies
{
    public int id {get;set;}
    public List<Service> services {get;set;}
    public List<Solution> solutions {get;set;}
}

class Solution
{
    public int id {get;set;}
    public string description {get;set;}
}

class Service
{
    public int id {get;set;}
    public string description {get;set;}
}

したがって、私が行う必要があるのは、データベースからすべてのテーブルデータをプルダウンしてから、それをクラスに再割り当てすることです。どうすればこのようなことができますか?私はテーブル構造を変更できないという制約の下で作業しているので、データベースを再設計するだけでは選択肢がありません。

4

1 に答える 1

2

Studyオブジェクトのコレクション内のDBからデータを取得します。

class Study 
{
    public int ID {get; set;}
    public string Solutions {get; set;}
    public string Services {get; set;}
}

次に、コレクションをループして、2つの辞書「Solutions」と「Services」を組み立てるたびにSolutionsとServicesの文字列を解析する必要があります。ここで、キーはそれぞれ各ソリューションとサービスの名前であり、値は関連するサービスのリストです(ソリューションキー)または関連するソリューション(サービスキーの場合)。何かのようなもの:

var solutions = new Dictionary<string, List<string>>();
var services = new Dictionary<string, List<string>>();

構文が正しいかどうかはわかりませんが、わかります。辞書にデータを入力するときは、特定のキーのソリューション/サービスのリストに重複する値を挿入しないようにしてください。

次に、「service1」で利用可能なソリューションのリストを検索すると、次のようになります。

var service1Solutions = services["service1"];
于 2013-03-06T22:12:24.657 に答える