ralmsdeveloper / EntityFrameworkCore.FirebirdSQL

FirebirdSQL database provider for Entity Framework Core.
Other
44 stars 26 forks source link

SaveChanges() #23

Closed marek1972 closed 6 years ago

marek1972 commented 6 years ago

The issue

In following situation SaveChanged() returns 7 affected rows, but table is still empty. No exception.

Steps to reproduce

In model:

namespace ContosoUniversity.Models { public class Course { [DatabaseGenerated(DatabaseGeneratedOption.None)] public int CourseID { get; set; } public int Credits { get; set; } [StringLength(100)] public string Title { get; set; }

    public ICollection<Enrollment> Enrollments { get; set; }
}

}

In controller:

        if (!context.Courses.Any())
        {
            var courses = new List<Course>
            {
                new Course{CourseID=1050,Credits=3,Title="Chemistry"},
                new Course{CourseID=4022,Credits=3,Title="Microeconomics"},
                new Course{CourseID=4041,Credits=3,Title="Macroeconomics"},
                new Course{CourseID=1045,Credits=4,Title="Calculus"},
                new Course{CourseID=3141,Credits=4,Title="Trigonometry"},
                new Course{CourseID=2021,Credits=3,Title="Composition"},
                new Course{CourseID=2042,Credits=4,Title="Literature"} 
            };

            context.Courses.AddRange(courses);
            int r = context.SaveChanges();
        }

Error details

There is no error produced in output window.

Microsoft.EntityFrameworkCore.Database.Command:Information: Executed DbCommand (7ms) [Parameters=[@p0='?', @p1='?', @p2='?' (Size = 100), @p3='?', @p4='?', @p5='?' (Size = 100), @p6='?', @p7='?', @p8='?' (Size = 100), @p9='?', @p10='?', @p11='?' (Size = 100), @p12='?', @p13='?', @p14='?' (Size = 100), @p15='?', @p16='?', @p17='?' (Size = 100), @p18='?', @p19='?', @p20='?' (Size = 100)], CommandType='Text', CommandTimeout='30'] EXECUTE BLOCK ( p0 INTEGER=@p0,p1 INTEGER=@p1,p2 VARCHAR(100)=@p2,p3 INTEGER=@p3,p4 INTEGER=@p4,p5 VARCHAR(100)=@p5,p6 INTEGER=@p6,p7 INTEGER=@p7,p8 VARCHAR(100)=@p8,p9 INTEGER=@p9,p10 INTEGER=@p10,p11 VARCHAR(100)=@p11,p12 INTEGER=@p12,p13 INTEGER=@p13,p14 VARCHAR(100)=@p14,p15 INTEGER=@p15,p16 INTEGER=@p16,p17 VARCHAR(100)=@p17,p18 INTEGER=@p18,p19 INTEGER=@p19,p20 VARCHAR(100)=@p20) RETURNS (AffectedRows BIGINT) AS BEGIN AffectedRows=0;

INSERT INTO "Course" ("CourseID", "Credits", "Title") VALUES (:p0, :p1, :p2) RETURNING ROW_COUNT INTO :AffectedRows; SUSPEND; INSERT INTO "Course" ("CourseID", "Credits", "Title") VALUES (:p3, :p4, :p5) RETURNING ROW_COUNT INTO :AffectedRows; SUSPEND; INSERT INTO "Course" ("CourseID", "Credits", "Title") VALUES (:p6, :p7, :p8) RETURNING ROW_COUNT INTO :AffectedRows; SUSPEND; INSERT INTO "Course" ("CourseID", "Credits", "Title") VALUES (:p9, :p10, :p11) RETURNING ROW_COUNT INTO :AffectedRows; SUSPEND; INSERT INTO "Course" ("CourseID", "Credits", "Title") VALUES (:p12, :p13, :p14) RETURNING ROW_COUNT INTO :AffectedRows; SUSPEND; INSERT INTO "Course" ("CourseID", "Credits", "Title") VALUES (:p15, :p16, :p17) RETURNING ROW_COUNT INTO :AffectedRows; SUSPEND; INSERT INTO "Course" ("CourseID", "Credits", "Title") VALUES (:p18, :p19, :p20) RETURNING ROW_COUNT INTO :AffectedRows; SUSPEND; END; Application Insights Telemetry (unconfigured): {"name":"Microsoft.ApplicationInsights.Dev.Message","time":"2018-01-16T10:03:54.0721811Z","tags":{"ai.internal.sdkVersion":"aspnet5c:2.1.1","ai.application.ver":"1.0.0.0"},"data":{"baseType":"MessageData","baseData":{"ver":2,"message":"Executed DbCommand (7ms) [Parameters=[@p0='?', @p1='?', @p2='?' (Size = 100), @p3='?', @p4='?', @p5='?' (Size = 100), @p6='?', @p7='?', @p8='?' (Size = 100), @p9='?', @p10='?', @p11='?' (Size = 100), @p12='?', @p13='?', @p14='?' (Size = 100), @p15='?', @p16='?', @p17='?' (Size = 100), @p18='?', @p19='?', @p20='?' (Size = 100)], CommandType='Text', CommandTimeout='30']\r\nEXECUTE BLOCK ( \r\np0 INTEGER=@p0,p1 INTEGER=@p1,p2 VARCHAR(100)=@p2,p3 INTEGER=@p3,p4 INTEGER=@p4,p5 VARCHAR(100)=@p5,p6 INTEGER=@p6,p7 INTEGER=@p7,p8 VARCHAR(100)=@p8,p9 INTEGER=@p9,p10 INTEGER=@p10,p11 VARCHAR(100)=@p11,p12 INTEGER=@p12,p13 INTEGER=@p13,p14 VARCHAR(100)=@p14,p15 INTEGER=@p15,p16 INTEGER=@p16,p17 VARCHAR(100)=@p17,p18 INTEGER=@p18,p19 INTEGER=@p19,p20 VARCHAR(100)=@p20) \r\nRETURNS (AffectedRows BIGINT) AS BEGIN\r\nAffectedRows=0;\r\n\r\nINSERT INTO \"Course\" (\"CourseID\", \"Credits\", \"Title\")\r\nVALUES (:p0, :p1, :p2) RETURNING ROW_COUNT INTO :AffectedRows;\r\nSUSPEND;\r\nINSERT INTO \"Course\" (\"CourseID\", \"Credits\", \"Title\")\r\nVALUES (:p3, :p4, :p5) RETURNING ROW_COUNT INTO :AffectedRows;\r\nSUSPEND;\r\nINSERT INTO \"Course\" (\"CourseID\", \"Credits\", \"Title\")\r\nVALUES (:p6, :p7, :p8) RETURNING ROW_COUNT INTO :AffectedRows;\r\nSUSPEND;\r\nINSERT INTO \"Course\" (\"CourseID\", \"Credits\", \"Title\")\r\nVALUES (:p9, :p10, :p11) RETURNING ROW_COUNT INTO :AffectedRows;\r\nSUSPEND;\r\nINSERT INTO \"Course\" (\"CourseID\", \"Credits\", \"Title\")\r\nVALUES (:p12, :p13, :p14) RETURNING ROW_COUNT INTO :AffectedRows;\r\nSUSPEND;\r\nINSERT INTO \"Course\" (\"CourseID\", \"Credits\", \"Title\")\r\nVALUES (:p15, :p16, :p17) RETURNING ROW_COUNT INTO :AffectedRows;\r\nSUSPEND;\r\nINSERT INTO \"Course\" (\"CourseID\", \"Credits\", \"Title\")\r\nVALUES (:p18, :p19, :p20) RETURNING ROW_COUNT INTO :AffectedRows;\r\nSUSPEND;\r\nEND;","severityLevel":"Information","properties":{"{OriginalFormat}":"Executed DbCommand ({elapsed}ms) [Parameters=[{parameters}], CommandType='{commandType}', CommandTimeout='{commandTimeout}']{newLine}{commandText}","commandText":"EXECUTE BLOCK ( \r\np0 INTEGER=@p0,p1 INTEGER=@p1,p2 VARCHAR(100)=@p2,p3 INTEGER=@p3,p4 INTEGER=@p4,p5 VARCHAR(100)=@p5,p6 INTEGER=@p6,p7 INTEGER=@p7,p8 VARCHAR(100)=@p8,p9 INTEGER=@p9,p10 INTEGER=@p10,p11 VARCHAR(100)=@p11,p12 INTEGER=@p12,p13 INTEGER=@p13,p14 VARCHAR(100)=@p14,p15 INTEGER=@p15,p16 INTEGER=@p16,p17 VARCHAR(100)=@p17,p18 INTEGER=@p18,p19 INTEGER=@p19,p20 VARCHAR(100)=@p20) \r\nRETURNS (AffectedRows BIGINT) AS BEGIN\r\nAffectedRows=0;\r\n\r\nINSERT INTO \"Course\" (\"CourseID\", \"Credits\", \"Title\")\r\nVALUES (:p0, :p1, :p2) RETURNING ROW_COUNT INTO :AffectedRows;\r\nSUSPEND;\r\nINSERT INTO \"Course\" (\"CourseID\", \"Credits\", \"Title\")\r\nVALUES (:p3, :p4, :p5) RETURNING ROW_COUNT INTO :AffectedRows;\r\nSUSPEND;\r\nINSERT INTO \"Course\" (\"CourseID\", \"Credits\", \"Title\")\r\nVALUES (:p6, :p7, :p8) RETURNING ROW_COUNT INTO :AffectedRows;\r\nSUSPEND;\r\nINSERT INTO \"Course\" (\"CourseID\", \"Credits\", \"Title\")\r\nVALUES (:p9, :p10, :p11) RETURNING ROW_COUNT INTO :AffectedRows;\r\nSUSPEND;\r\nINSERT INTO \"Course\" (\"CourseID\", \"Credits\", \"Title\")\r\nVALUES (:p12, :p13, :p14) RETURNING ROW_COUNT INTO :AffectedRows;\r\nSUSPEND;\r\nINSERT INTO \"Course\" (\"CourseID\", \"Credits\", \"Title\")\r\nVALUES (:p15, :p16, :p17) RETURNING ROW_COUNT INTO :AffectedRows;\r\nSUSPEND;\r\nINSERT INTO \"Course\" (\"CourseID\", \"Credits\", \"Title\")\r\nVALUES (:p18, :p19, :p20) RETURNING ROW_COUNT INTO :AffectedRows;\r\nSUSPEND;\r\nEND;","commandTimeout":"30","AspNetCoreEnvironment":"Development","elapsed":"7","CategoryName":"Microsoft.EntityFrameworkCore.Database.Command","DeveloperMode":"true","parameters":"@p0='?', @p1='?', @p2='?' (Size = 100), @p3='?', @p4='?', @p5='?' (Size = 100), @p6='?', @p7='?', @p8='?' (Size = 100), @p9='?', @p10='?', @p11='?' (Size = 100), @p12='?', @p13='?', @p14='?' (Size = 100), @p15='?', @p16='?', @p17='?' (Size = 100), @p18='?', @p19='?', @p20='?' (Size = 100)","commandType":"Text"}}}}

Further technical details

Firebird version: 2.5.7 EntityFrameworkCore.FirebirdSql version: 2.0.11.4

Other details about my project setup:

ralmsdeveloper commented 6 years ago

Thanks for the tests!

I need more of this. Sorted out!