我试图通过Entity Framework 6.1.3向MS Sql Server数据库插入大约50.000行,但这需要太长时间.我听了这个回答.在添加每1000个实体后禁用AutoDetectChangesEnabled并调用SaveChanges.它仍然需要大约7-8分钟.我尝试使用远程服务器和本地服务器.没有太大区别.我不认为这是正常的.我忘记了什么吗?
这是我的代码:
static void Main(string[] args)
{
var personCount = 50000;
var personList = new List<Person>();
var random = new Random();
for (int i = 0; i < personCount; i++)
{
personList.Add(new Person
{
CreateDate = DateTime.Now,
DateOfBirth = DateTime.Now,
FirstName = "Name",
IsActive = true,
IsDeleted = false,
LastName = "Surname",
PhoneNumber = "01234567890",
PlaceOfBirth = "Trabzon",
Value0 = random.NextDouble(),
Value1 = random.Next(),
Value10 = random.NextDouble(),
Value2 = random.Next(),
Value3 = random.Next(),
Value4 …Run Code Online (Sandbox Code Playgroud) 首先,我使用的是ASP.NET MVC 4和Entity Framework 5.这是我在MVC中的第一个项目.
我试图在我的WorkLogs表中插入一行.我用代码第一种方法创建了我的数据库.
这是我的WorkLogs模型(因为我创建了数据库,所以我没有对我的模型进行任何更改):
public class WorkLogs
{
[Key, DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int WorkLogId { get; set; }
[Required]
public int Time { get; set; }
[Required]
public DateTime Date { get; set; }
[Required]
public DateTime CreatedDate { get; set; }
[Required]
public bool IsSent { get; set; }
public virtual Users User { get; set; }
public virtual Works Work { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
此模型已在数据库中创建此表:

这些是关系(对我来说似乎是正确的):

我试图在我的控制器中添加一个带有此代码的新行:
WorkLogs log = new WorkLogs()
{
Time = …Run Code Online (Sandbox Code Playgroud)