我目前正在测试和使用新的Microsoft .Net-Core Technology-Stack,玩弄EF7,.Net-Core等等。 因此,微软的战略是模块化,开放式沟通和基于组合的战略。 最后一点困扰我,因为这似乎是后退一步。一个例子:我测试了新的EF7和LocalDB,所以我可以在我的WPF应用程序中简单地发送带有3-4个表的MDF。 为此,我需要一种策略来为每个用户更新MDF,以确保数据库始终具有相同的结构。我最终使用了适当的扩展方法:
internal BoerseDownloaderDbContext Create()
{
var result = _unityContainer.Resolve<BoerseDownloaderDbContext>();
result.ChangeTracker.AutoDetectChangesEnabled = false;
// http://stackoverflow.com/questions/31216983/update-database-after-model-changes-entity-framework-7
result.Database.Migrate();
return result;
}
现在困扰我的是:这些东西不仅会损害demeter的规律,而且扩展方法也很难用,因为IntelliSense无法在相应的命名空间中识别它们。由于我抽象了DbContext,我没有
using Microsoft.EntityFrameworkCore;
我的类中的命名空间,所以我无法知道此方法是否存在。像往常一样,StackOverflow给了我一个暗示,但它似乎真的阻碍了生产力,因为我永远无法确定,如果存在某些东西或我必须自己实现它。
看来,这会变得更糟,所以如果我们看一下这个视频: https://channel9.msdn.com/Series/A-Developers-Guide-to-Windows-10/08 在21:40左右,它清楚地表明,这是微软的目标。
我有什么遗漏或事实,扩展方法没有很好地整合,我们将不得不忍受这个问题吗?