小编gko*_*kon的帖子

EntityFramework插入速度非常慢,数据量很大

我试图通过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)

c# sql-server entity-framework

3
推荐指数
1
解决办法
1万
查看次数

由于关系问题,无法将行插入数据库

首先,我使用的是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)

此模型已在数据库中创建此表:

D b

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

D b

我试图在我的控制器中添加一个带有此代码的新行:

WorkLogs log = new WorkLogs()
{
    Time = …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-mvc entity-framework asp.net-mvc-4

2
推荐指数
1
解决办法
1万
查看次数