Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/309.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF核心-重新创建单个表_C#_Entity Framework_Entity Framework Core - Fatal编程技术网

C# EF核心-重新创建单个表

C# EF核心-重新创建单个表,c#,entity-framework,entity-framework-core,C#,Entity Framework,Entity Framework Core,我有一个过程,在这个过程中,我试图从一堆更新的CSV中保持数据库的最新状态。基本上,该计划是让触发器监视github repo,并在新提交到达主服务器时处理csv 现在,我在重新创建一张桌子之前把它扔到了墙上。我可以删除所有表,然后重新创建所有表。但是,我需要能够删除一个表(简单),然后重新创建该表,使其为空,并可以将新的csv上载到其中。有办法做到这一点吗 await context.Database.ExecuteSqlCommandAsync("DROP TABLE IF EXISTS A

我有一个过程,在这个过程中,我试图从一堆更新的CSV中保持数据库的最新状态。基本上,该计划是让触发器监视github repo,并在新提交到达主服务器时处理csv

现在,我在重新创建一张桌子之前把它扔到了墙上。我可以删除所有表,然后重新创建所有表。但是,我需要能够删除一个表(简单),然后重新创建该表,使其为空,并可以将新的csv上载到其中。有办法做到这一点吗

await context.Database.ExecuteSqlCommandAsync("DROP TABLE IF EXISTS AllStarFull");
await context.Database.ExecuteSqlCommandAsync("DROP TABLE IF EXISTS Appearances");
var dbCreator = (RelationalDatabaseCreator) context.Database.GetService<IDatabaseCreator>();
await dbCreator.CreateTablesAsync(); // Wishing there was a method to create a SINGLE table here...
wait context.Database.ExecuteSqlCommandAsync(“如果存在,则删除表AllStarFull”);
wait context.Database.ExecuteSqlCommandAsync(“如果存在,则删除表”);
var dbCreator=(RelationalDatabaseCreator)context.Database.GetService();
等待dbCreator.CreateTablesAsync();//希望这里有一个创建单个表的方法。。。
理想情况下,我想要这样的东西:

var dbCreator = (RelationalDatabaseCreator) context.Database.GetService<IDatabaseCreator>();
await dbCreator.CreateTableAsync(Model);
var dbCreator=(RelationalDatabaseCreator)context.Database.GetService();
等待dbCreator.CreateTableAsync(模型);

我知道我可以用创建表所需的sql轻松地运行相同的
context.Database.ExecuteSqlCommandAsync
,但我认为这不符合EF框架。除非有某种方法可以从给定的实体框架模型获取生成的sql。

不确定,但为什么不干脆截断表而不是删除并重新创建?还没有考虑过截断。截断是否也会重置标识列?我主要关注的两个问题是重复数据(我基本上只是重新上传一个可能已更改或未更改的csv)和确保在新上传时重置我的标识列(从Id=1开始)。我认为在远程github repo中使用csv文件进行数据库维护是违反EF框架的,因此,使用创建和删除表所需的sql应该是您最不关心的问题。这就像你的观点一样,伙计。是的,截断重置标识(假设SQL Server用于dbms)。不确定,但是为什么不直接截断表而不是删除并重新创建?还没有考虑过截断。截断是否也会重置标识列?我主要关注的两个问题是重复数据(我基本上只是重新上传一个可能已更改或未更改的csv)和确保在新上传时重置我的标识列(从Id=1开始)。我认为在远程github repo中使用csv文件进行数据库维护是违反EF框架的,因此,使用创建和删除表所需的sql应该是您最不关心的问题。这就像你的观点一样,伙计。是的,截断重置标识(假设SQL Server用于dbms)。