Entity Framework 5は初めてで、列挙型のサポートを試していますが、問題が発生しています。以前のバージョンを使用したのと同じようにEF5を使用しています。これは、データベースを作成し、データベースからモデルを生成し、コード生成を使用するためです。そこで、モデルのコード生成プロパティを「デフォルト」に変更し、.ttファイルを削除します。
複数のdllを使用するソリューションがあります。そのうちの1つにはDataModel(edmx)があり、もう1つには男性と女性の2つの値を持つ「EnumGender」という列挙型があります。
データベースには、「Gender」(smallint)というフィールドを持つUsersテーブルがあり、「EnumGender」を使用しようとしています。
EnumGenderは「Sample.Datatypes.Enums」という名前空間にあるため、edmxモデルブラウザで列挙型を追加しようとしています。このために、名前として「EnumGender」を設定し、値を追加せず、「Reference external type」チェックボックスをオンにして、テキストボックスに「Sample.Datatypes.Enums.EnumGender」と入力しました。
問題は、EFがデータモデル名前空間に新しい列挙型を作成しているように見えることです。これは私が望まないので、「Sample.Datatypes.Enums」名前空間でEnumGenderを使用したいと思います。また、EFが作成する新しい列挙型には値がありません...データモデルのcsファイル(生成されたコード)に入力すると、次のように追加されます。
/// <summary>
/// No Metadata Documentation available.
/// </summary>
[EdmEnumTypeAttribute(NamespaceName="SampleModel", Name="EnumGender")]
[DataContractAttribute()]
public enum EnumGender : short
{
}
何が起こっているのかわかりません...外部dllのデータ型を使用できない可能性があります...しかし、列挙型のサポートについて読んだことで、これを実行できるはずです...
この問題について私を助けていただければ幸いです。
ありがとう!ファン