文字列、整数などの不明なサイズの配列で SQL テーブルを作成する必要があります。これを行う最善の方法は、別のテーブルを作成することです。このように(疑似コードが続きます。「主キー」を正しく使用しているかどうかわかりません):
public class DataBase : DataContext
{
public Table<UserAccount> users { get { return GetTable<UserAccount>(); } }
public Table<UserAccount_roles> userroles { get { return GetTable<UserAccount_roles>(); } }
}
[Table]
public class UserAccount
{
[Column(IsPrimaryKey = true)]
public string username;
[Column]
public string password;
}
[Table]
public class UserAccount_roles
{
[Column(IsPrimaryKey = true)]
public string userName;
[Column(IsPrimaryKey = true, IsDbGenerated = true)]
public int roleIdx;
[Column]
public int arrayValue;
}
ただし、SQL 実装について心配する必要がない場合、UserAccount_roles は UserAccount-class 内の単純な「List<> ロール」である可能性があるため、これは不器用に感じます。
私はむしろこのようなことをしたい:
public class DataBase : DataContext
{
public Table<UserAccount> users { get { return GetTable<UserAccount>(); } }
}
[Table]
public class UserAccount
{
[Column(IsPrimaryKey = true)]
public string username;
[Column]
public string password;
[MyColumn]
public MySQLList<DataBase, int> roles;
}
「」をしようと思いclass MySQLList<B, T> : List<T>
ました。データベース クラス ("B") では、正しいデータベースへのアクセスを許可するいくつかの静的メソッドを作成しました。次に、MySQLList 内で、オーバーロードされた List<> メソッドによってデータベースを操作します。プログラマー (主に私) は、カスタマイズされた List<> の形式で単純化されたソリューションを表示するだけなので、これにより、テーブル UserAccount_roles の構築とアクセスが「フードの下で」行われるはずです。
私の実際の質問は次のとおりです。
- これにはいくつかの準備が整った実装があるに違いありません。どこで見つけられますか?
- 「[table] class MyTable」-MySQLList<> での宣言を行うことができないと思います。そこで実際のSQL言語コーディングを行う必要がありますか、またはコンパイル/実行時にLinq to SQLクラスと属性のものを作成する方法はありますか?
- このアプローチで一般的な注意事項はありますか?-)