Я новичок в платформе Entity Framework.Разница между EF6 и EF4.1 в иерархии файлов
Я заметил, что когда я использую EF6 with Visual studio 2013
:
У меня есть .Designer.cs
пустой файл с таким комментарием:
// T4 code generation is enabled for model 'C:\Users\Luka\Desktop\Test\EF-db2008\AdventureWorks\AdventureWorksLib\AdventureWorksLib\AWLTModel.edmx'.
// To enable legacy code generation, change the value of the 'Code Generation Strategy' designer
// property to 'Legacy ObjectContext'. This property is available in the Properties Window when the model
// is open in the designer.
// If no context and entity classes have been generated, it may be because you created an empty model but
// have not yet chosen which version of Entity Framework to use. To generate a context class and entity
// classes for your model, open the model in the designer, right-click on the designer surface, and
// select 'Update Model from Database...', 'Generate Database from Model...', or 'Add Code Generation
// Item...'.
.Context.tt
и его .Context.cs
с кодом, как это:
public partial class AWLTEntities : DbContext
{
public AWLTEntities()
: base("name=AWLTEntities")
{
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
throw new UnintentionalCodeFirstException();
}
public virtual DbSet<Address> Addresses { get; set; }
public virtual DbSet<Customer> Customers { get; set; }
}
И затем .tt
файл с файлом .cs
для каждого объекта, как Customer.cs
С помощью следующего кода:
public partial class Customer
{
public Customer()
{
this.NameStyle = false;
this.CustomerAddresses = new HashSet<CustomerAddress>();
this.Orders = new HashSet<Order>();
}
public int CustomerID { get; set; }
}
Это «s совершенно другое, когда я использую EF4.1 with visual studio 2010
, есть только один код позади файла .Designer.cs
для модели !!
- Может кто-нибудь помочь мне понять, что все эти файлы для
.Context.tt
,.Context.cs
,.tt
,.cs
? И что «s отличается в файлах иерархии между этими двумя случаями(EF6,EF4.1)
? - Не удалось найти
OnPropertyChanging(Value) & OnPropertyChanged()
вEF6
, чтобы проверить мои сущности !! Почему эти методы больше не существуют и как проверить мои свойства , если они не существуют?
Также следует отметить, что EDMX является уходит в EF7. Таким образом, ни одно из этого не будет применимо после EF 6. – danludwig
Да, но это очень больно в EF7, стоит отдельный поток, а не комментарий). Но вкратце - в нашем текущем проекте мы не можем перейти на EF 7 именно из-за этого - мы используем существующую базу данных и подход «Обновить модель из db», который [не поддерживается] (http://blogs.msdn.com/b/adonet/archive/2014/10/21/ef7-what-does-code -первая только-очень-mean.aspx). Например, у нас есть пользовательские имена сопоставления, и они будут сброшены, если мы будем использовать обратный инженер для Code First, и мы не можем позволить себе переименование во всем нашем коде - слишком массивный рефакторинг. И сопоставления функций не поддерживаются в Code First. –
И я полагаю, что «после EF 6» не будет, потому что EF 7 просто [отличается слишком много] (http://blogs.msdn.com/b/adonet/archive/2014/10/27/ef7-v1- или-v7.aspx), поэтому у нас может быть даже 2 рамки для разных потребностей - EF 6 и EF 7. –