Я использую Microsoft.Data.Entity.CTP (в CTP Entity Framework) в рамках платформы .NET 4 для создайте метаданные EDMX из моих классов C#, чтобы создать схему базы данных.Исключение при создании EDMX/DB-схемы с использованием Entity Framework 4 с использованием ContextBuilder с общим классом
я установка простой модели как таковой:
public class AModelContainer : ObjectContext
{
public IObjectSet<RegularClass> RegularClasses {
get { return CreateObjectSet<RegularClass>(); }
}
}
Я следую простой схеме определения нового ContextBuilder, основанный на моей модели.
var builder = new ContextBuilder<AModelContainer>();
using(var context = builder.Create(new SqlConnection(connString)))
{
context.RegularClasses.AddObject(new RegularClass());
context.SaveChanges();
}
Это прекрасно работает. До я пытаюсь сделать что-то более сложное ...
Выражаю свою модель с общим классом
public class AModelContainer : ObjectContext
{
public IObjectSet<SpecialClass<string>> SpecialClasses {
get { return CreateObjectSet<SpecialClass<string>>(); }
}
}
Теперь на сохранение я получаю исключение:
Информация о сопоставлении и метаданных не найдена для EntityType 'Prototype.SpecialClass`1 [[System.String, mscorlib, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089]]'.
На этой линии в AModelContainer:
return CreateObjectSet<SpecialClass<string>>();
конструктор по умолчанию моего родового 'SpecialClass' The ничего не делает в данный момент, должен ли?
public class SpecialClass<T>
{
public SpecialClass()
{ }
}
Или это проблема с ContextBuilder не зная, что делать точно, есть ли способ использовать builder.ComplexType(), или другим способом, чтобы направлять его?
Или CTP не может справиться с этим сценарием еще ...
Это «` 1»после того, как мое имя класса также не сидит хорошо со мной, за исключением ...