私はEF4コードファーストで少し問題を抱えています(実際にCFを使用するだけで問題になると思います)。
次のようなコードを使用して、コンテキスト メタデータからエンティティ タイプの情報を取得しようとしています。
return (context as System.Data.Entity.Infrastructure.IObjectContextAdapter)
.ObjectContext.MetadataWorkspace
.GetItems<EntityType>(DataSpace.CSpace)
.Where(x => x.FullName == ModelType.FullName)
.FirstOrDefault();
ModelType は、検索するエンティティの System.Type を含むパラメーターです。型のメタデータを含む System.Data.Metadata.Edm.EntityType インスタンスを返す必要があります。
DbSet で参照されるモデルは MyApp.Models.User という名前で、DbContext クラスは MyApp.Servicing 名前空間の下に作成されました
今私が抱えている問題は、System.Data.Metadata.Edm.EntityType の FullName プロパティがMyApp.Models.User ではなくMyApp.Servicing .User (O_O) であることです。
コードファーストでEDMXを持っていないので、EFがedmメタデータを嘲笑している可能性があると思いますが、それは推測です。
なぜこれが起こるのですか?別の方法で解決できますが、その理由を知りたいです。