在使用实体框架数据库优先方法生成多个EDMX和模型时,我遇到了一个问题,这些模型最初被映射到远程SQL Server 2012实例上的表/存储过程。既然我们已经迁移到Server 2016,每当我们试图通过添加新表、刷新模型等来更新这些EDMX模型时,更新向导就会无限期地冻结。
我已经对这个问题做了一些研究,我也看到了一些人幸运地改变了数据库上的兼容性水平,但如果可能的话,这是我们想要避免的。迁移后,对于服务器上的所有数据库,兼容性级别被设置为 server 2016 (130),特别是为了我们的Microsoft数据库顾问的查询优化目的。
我尝试过手动更改EDMX的XML内容中的Provid
我有一个WPF应用程序,带有一个本地.MDF文件,我在该应用程序上创建了一个实体框架类模型。
从数据库中检索实体工作良好
//get entities
using (var context = new TestDataEntities1())
{
var customers = from c in context.Customers
select c;
foreach (var customer in customers)
{
TheCustomers.Add(customer);
}
}
但是,更新和添加
我们在数据库第一模型中大量使用了实体框架,包括实体框架6和SqlSever (2012年)。
我们有许多相当长的运行过程(10秒),每个进程都使用不同的数据创建相同类型的对象--这些对象在创建过程中使用实体框架在数据库中写入和删除数据。到目前一切尚好。为了提高应用程序的性能,我们希望并行运行这些操作,因此使用Task构造来实现以下功能:
Private Async Function LongRunningProcessAsync(data As SomeData) As Task(Of LongRunningProcessResult)
Return Await Task.Factor
我在实体框架6.0中工作,模式第一方法创建数据库。我已经将延迟加载设置为"false":在创建数据库之后,我正在处理实体(A),即病人,它有导航属性联系人(B)。我已经更改了病人( A )的联系方式(B)信息,例如邮政编码,然后调用实体A的更新。
public static void A(A a)
{
unitOfWork.ARepository.Update(a);
unitOfWork.Save();
}
工作单位更新方法代码如下
public virtual void Update(TEntity entityToUpdate)
{
dbSet.
在查询后分离大型列表的实体是否有益,即对以下实体使用默认模式:
// Find all
for List<Device> devices = em.createNamedQuery("find.*.devices", Device.class).getResultList();
// Detach all
for (Device d : devices) {
em.detach(d);
}
我们可以避免某些负面影响,比如错误地为被认为是“只读”的实体更新数据库(这是可以保证的)或节省内存。
我想为现有实体创建一个迁移。我有一个DataContext课程
public class DataContext : DbContext
{
public DataContext()
{
}
public DataContext(DbContextOptions<DataContext> options) : base(options)
{
}
public DbSet<AppUser> Users { get; set; }
}
我把它添加到IServiceCollection扩展方法中的服务中-
public