Я уже пару дней играю с этой идеей, но не могу найти убедительных доказательств того, что это сработает или не сработает.
Я хочу использовать запросы LinqPadсоздать базу данных EF 4.1 с первым кодом с поддержкой SQL Server CE в том же каталоге, что и запрос (возможно, с тем же именем, что и запрос).Причиной этого было бы быстрое создание базы данных для хранения результатов запроса для дальнейшей обработки.
Идея состоит в том, чтобы сохранить определения классов в запросе, т. Е. (Они будут работать с последней бета
public class User
{
public long Id { get; set; }
public string Name{ get; set; }
}
public class MyDBContext : DbContext
{
// note the overloaded constructor
// just pass in the LinqPad UserQuery connection
public MyDBContext(DbConnection connection) : base(connection, true)
{}
public DbSet<User> Users { get; set; }
}
Затем в запросе:
#define NONEST
public Main()
{
Database.SetInitializer(new DropCreateDatabaseIfModelChanges<MyDBContext>());
// pass in the current database connection to point EF to the right database
var context = new MyDBContext(this.Connection);
context.Users.Add(new User(){Name = "Test User"});
context.SaveChanges();
context.Users.Dump("Contents of Users table");
}
Я ссылался на EntityFramework 4.2.0.0 в LinqPad, но в своем запросе я не вижу пространства имен System.Data.Entity
. Это свидетельствует о какой-то другой проблеме?
Я не уверен, чтоЕсли у вас достаточно контекста или информации, дайте мне знать, если вам нужны пояснения. Можно ли это сделать? LinqPad пока не поддерживает это?
Обновление:
Похоже, EF не может отобразить вложенноеклассы, что в точности соответствует классу, определенному в запросе LinqPad. Я не очень разбираюсь в этом контексте, но кажется, что я зашел в тупик. Если Джо Албахари не сможет каким-то образом реализовать не вложенные пользовательские классы, это не так.Похоже, это будет работать. У кого-нибудь есть идеи?
Окончательное обновление:
При использовании последней бета-версии это полностью работает. Требуется создатьфайл базы данных .sdf
заранее, но не всеее операции должны работать.Очень круто.Спасибо Джо Албахари!