Entity Framework CodeFirstモデルを作成してHelloWorldと同等の処理を実行しました(他のC#プログラムを作成しましたが、Entity Frameworkは使用していません)。私は次のようなモデルを作成しました:
class Preferences
{
[Key]
public string StationName { get; set; }
[MaxLength(30)]
public string MainDatabase { get; set; }
[MaxLength(30)]
public string DefaultSequence { get; set; }
}
その後、レコードを追加するための小さなルーチンがありました
var newPrefs = new Preferences
{
StationName = "MATT",
DefaultSequence = "NONE",
MainDatabase = "NONE"
};
Preferences prefs = foo.Preferences.Add(newPrefs);
次に、データベースを作成しようとしますが、主キーを追加するとエラーが発生して失敗します
"BLOB/TEXT column 'StationName' used in key specification without a key length"
CHARまたはVARCHARの代わりにデータ型「mediumtext」を使用し、MySQLはその型をキーに使用できないためです。
キー列に優先タイプを使用するようにMySQLに指示する、データベースにとらわれない方法はありますか?それとも、あきらめて整数キーを作成する必要がありますか?
このようなデザインのバリエーションも試してみましたが、うまくいきませんでした。
class Preferences
{
[Key,DataType("CHAR"),StringLength(30)]
public string StationName { get; set; }
[MaxLength(30)]
public string MainDatabase { get; set; }
[MaxLength(30)]
public string DefaultSequence { get; set; }
}
ご協力いただきありがとうございます。