C# 具有实体框架6.1 CodeFirst的SQL Server 2014内存优化表

C# 具有实体框架6.1 CodeFirst的SQL Server 2014内存优化表,c#,sql-server,entity-framework,ef-code-first,C#,Sql Server,Entity Framework,Ef Code First,我的应用程序使用两个查找表,我想成为内存优化表 似乎还没有属性来声明这一点 是否可以挂接到表创建过程中,查找自定义属性并修改CREATETABLE命令 我首先使用实体框架6.1和代码 我寻求一种方法使其具有声明性,因此,如果EF 6.2或更新版本支持它,我可以放弃我的攻击。也许您可以创建一个实体框架DB初始值设定项来删除并重新创建表 类似(伪代码!): 我将用您希望优化数据库的特定sql替换CreateTable,在使用sql的向上迁移中调用(“创建表等”) 这仅限于Sql Server 201

我的应用程序使用两个查找表,我想成为内存优化表

似乎还没有属性来声明这一点

是否可以挂接到表创建过程中,查找自定义属性并修改CREATETABLE命令

我首先使用实体框架6.1和代码


我寻求一种方法使其具有声明性,因此,如果EF 6.2或更新版本支持它,我可以放弃我的攻击。

也许您可以创建一个实体框架DB初始值设定项来删除并重新创建表

类似(伪代码!):


我将用您希望优化数据库的特定sql替换CreateTable,在使用sql的向上迁移中调用(“创建表等”)


这仅限于Sql Server 2014,并进一步受到内存优化的其他要求的限制。在EF中尝试使用属性是不值得的。

老问题,但仅供参考,内存优化表在即将发布的Entity Framework Core 1.1中具有一流的支持(preview1刚刚发布).

我怀疑您是否可以在sql中拥有两个内存表和其他表,并希望EF能够在两个不同的数据源上工作。这是sql server 2014的一项功能。数据源是相同的。好的,我知道这个功能是内存优化表,而不是内存中的表,我认为您将实现一个自定义解决方案。Thx,您是对的;-)当然,不是先用代码。我考虑过类似的事情,但我如何将它映射到属性?我寻求一种方法使其具有声明性,因此,如果EF 6.2或任何支持其官方版本,我可以放弃我的攻击+1我这样做是因为EF团队成员也推荐我这样做
    public class MyDbInitializer : CreateDatabaseIfNotExists<MyDbContext>
    {
        protected override void Seed(MyDbContext context)
        {
            context.Database.ExecuteSqlCommand("DROP TABLE MyTable");
            context.Database.ExecuteSqlCommand("CREATE TABLE MyTable (bla bla bla)  WITH (MEMORY_OPTIMIZED=ON)");
        }
    }
System.Data.Entity.Database.SetInitializer(new MyDbInitializer());