JeanRessouche / SouchProd.EntityFrameworkCore.Firebird

Entity Framework Core provider for Firebird built on top of the Firebird ADO.NET Data Provider
MIT License
5 stars 7 forks source link

Sequence contains no matching element when scaffolding #6

Open DanBrooker opened 7 years ago

DanBrooker commented 7 years ago

Steps to reproduce

Ideally include a complete code listing that we can run to reproduce the issue. Alternatively, you can provide a project/solution that we can run.

Run the scaffold command.

dotnet ef dbcontext scaffold "User=SYSDBA;Password=.....;Database=/var/lib/firebird/2.5/data/otdata.fdb;DataSource=127.0.0.1;Port=3050;Dialect=3;Charset=UTF8;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;" "souchprod.EntityFrameworkCore.Firebird"

The issue

Exception when running command:

System.InvalidOperationException: Sequence contains no matching element
   at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source, Func`2 predicate)
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.FirebirdDatabaseModelFactory.GetConstraints()
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.FirebirdDatabaseModelFactory.Create(DbConnection connection, TableSelectionSet tableSelectionSet)
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.FirebirdDatabaseModelFactory.Create(DbConnection connection, IEnumerable`1 tables, IEnumerable`1 schemas)
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.FirebirdDatabaseModelFactory.Create(String connectionString, IEnumerable`1 tables, IEnumerable`1 schemas)
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.Create(String connectionString, IEnumerable`1 tables, IEnumerable`1 schemas, Boolean useDatabaseNames)
   at Microsoft.EntityFrameworkCore.Scaffolding.Internal.ModelScaffolder.Generate(String connectionString, IEnumerable`1 tables, IEnumerable`1 schemas, String projectPath, String outputPath, String rootNamespace, String contextName, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames)
   at Microsoft.EntityFrameworkCore.Design.Internal.DatabaseOperations.ScaffoldContext(String provider, String connectionString, String outputDir, String dbContextClassName, IEnumerable`1 schemas, IEnumerable`1 tables, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContextImpl(String provider, String connectionString, String outputDir, String dbContextClassName, IEnumerable`1 schemaFilters, IEnumerable`1 tableFilters, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames)
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContext.<>c__DisplayClass0_1.<.ctor>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.<Execute>b__0()
   at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action)

Further technical details

Firebird version: 2.5 Operating system: OSX 10.7 SouchProd.EntityFrameworkCore.Firebird version: 2.0.7

Other details about my project setup: netcoreapp2.0 Docker based Firebird https://github.com/almeida/docker-firebird

JeanRessouche commented 7 years ago

Hello Dan,

Would you try again with the --verbose parameter and copy the output please ?

Take not that major enhancements will be available soon once this project will be completely merged at https://github.com/cincuranet/FirebirdSql.Data.FirebirdClient/pull/70

DanBrooker commented 7 years ago

Here's the bit you're probably looking for:

GetConstraints
GetConstraints => Table ACCFILTER => 0
   PK ==> Table ACCFILTERITEM => FK_ACCFILTERITM_ID, PrincipalTable ACCFILTER, ACCFILTERID#0, ACCFILTERID#0
GetConstraints => Table ACCFILTERITEM => 1
   PK ==> Table ACCOUNT => FK_ACCT_LOGINID, PrincipalTable WBLOGIN, LOGINID#0, LOGINID#0
   PK ==> Table ACCOUNT => FK_ACCT_PERORGID, PrincipalTable PERORG, PERORGID#0, PERORGID#0
   PK ==> Table ACCOUNT => FK_ACCT_TYPEID, PrincipalTable ACCTYPE, ACCOUNTTYPEID#0, ACCOUNTTYPEID#0
GetConstraints => Table ACCOUNT => 3
   PK ==> Table ACCOUNTTRANSACTION => FK_ACCTRANS_LOGINID, PrincipalTable WBLOGIN, WHOTRANSACTION#0, LOGINID#0
System.InvalidOperationException: Sequence contains no matching element
   at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source, Func`2 predicate)
Full Stack trace: ``` Using project 'PATH/proj.csproj'. Using startup project 'PATH/proj.csproj'. Writing 'PATH/obj/proj.csproj.EntityFrameworkCore.targets'... dotnet msbuild /target:GetEFProjectMetadata /property:EFProjectMetadataFile=/var/folders/jx/sdn61fbs49d3ngf0_yjx43v80000gn/T/tmpeFcfds.tmp /verbosity:quiet /nologo PATH/proj.csproj Writing 'PATH/obj/proj.csproj.EntityFrameworkCore.targets'... dotnet msbuild /target:GetEFProjectMetadata /property:EFProjectMetadataFile=/var/folders/jx/sdn61fbs49d3ngf0_yjx43v80000gn/T/tmpfiszzt.tmp /verbosity:quiet /nologo PATH/proj.csproj dotnet build PATH/proj.csproj /verbosity:quiet /nologo Build succeeded. 0 Warning(s) 0 Error(s) Time Elapsed 00:00:02.47 dotnet exec --depsfile PATH/proj/bin/Debug/netcoreapp2.0/dump.deps.json --additionalprobingpath /Users/daniel/.nuget/packages --runtimeconfig PATH/proj/bin/Debug/netcoreapp2.0/dump.runtimeconfig.json /usr/local/share/dotnet/sdk/NuGetFallbackFolder/microsoft.entityframeworkcore.tools.dotnet/2.0.0/tools/netcoreapp2.0/ef.dll dbcontext scaffold "User=SYSDBA;Password=masterkey;Database=/var/lib/firebird/2.5/data/otdata.fdb;DataSource=127.0.0.1;Port=3050;Dialect=3;Charset=UTF8;Role=;Connection lifetime=15;Pooling=true;MinPoolSize=0;MaxPoolSize=50;Packet Size=8192;ServerType=0;" souchprod.EntityFrameworkCore.Firebird --assembly PATH/proj/bin/Debug/netcoreapp2.0/dump.dll --startup-assembly PATH/proj/bin/Debug/netcoreapp2.0/dump.dll --project-dir PATH/proj/ --verbose --root-namespace dump Using assembly 'dump'. Using startup assembly 'dump'. Using application base 'PATH/proj/bin/Debug/netcoreapp2.0'. Using working directory 'PATH/proj'. Using root namespace 'dump'. Using project directory 'PATH/proj/'. Finding design-time services for provider 'souchprod.EntityFrameworkCore.Firebird'... Using design-time services from provider 'souchprod.EntityFrameworkCore.Firebird'. Finding IDesignTimeServices implementations in assembly 'dump'... No design-time services were found. ResetState GetTables GetTables => Add ACCFILTER. GetTables => Add ACCFILTERITEM. GetTables => Add ACCOUNT. GetTables => Add ACCOUNTTRANSACTION. GetTables => Add ACCPE. GetTables => Add ACCTYPE. GetTables => Add ADDRESSMAPLOCATION. GetTables => Add AGROUP. GetTables => Add ANORD. GetTables => Add BOOKINGDETAIL. GetTables => Add CALLAWY. GetTables => Add CASHUP. GetTables => Add CCPRINT. GetTables => Add CLOCKIN. GetTables => Add COURSE. GetTables => Add CROL. GetTables => Add CROLPRIV. GetTables => Add CUTLTYP. GetTables => Add DELIVERYLOCATION. GetTables => Add DEPARTMENT. GetTables => Add DISCOUNTSCHEME. GetTables => Add DISCOUNTSCHEMEITEM. GetTables => Add FISCALCASHUPDETAILS. GetTables => Add FISCALCFOP. GetTables => Add FISCALMANAGEMENTREPORTS. GetTables => Add FISCALRECORDCOUNT. GetTables => Add FISCALTRACEDETAILS. GetTables => Add HELDGROUP. GetTables => Add INTEREST. GetTables => Add INTERESTPERORG. GetTables => Add INVLINE. GetTables => Add INVOICE. GetTables => Add ITEM. GetTables => Add ITEMGRP. GetTables => Add ITEMGRPSHARE. GetTables => Add ITEMMODGROUP. GetTables => Add ITEMPR. GetTables => Add ITEMSHARE. GetTables => Add LOYALTYITEM. GetTables => Add LOYALTYREWARD. GetTables => Add MENUITEMLINK. GetTables => Add MOD. GetTables => Add MODGROUP. GetTables => Add MODGROUPMOD. GetTables => Add NFEDATA. GetTables => Add NSTYPE. GetTables => Add OLMOD. GetTables => Add ORDLN. GetTables => Add OUTLET. GetTables => Add OUTLETACC. GetTables => Add PARKEDSALE. GetTables => Add PERIODEND. GetTables => Add PERORG. GetTables => Add PRINTER. GetTables => Add PRINTEROVERRIDE. GetTables => Add PRINTEROVERRIDEPRINTER. GetTables => Add PRINTJOB. GetTables => Add PSORDERLINE. GetTables => Add PSTENDERLINE. GetTables => Add QSBUTTON. GetTables => Add QSIMAGE. GetTables => Add QSLABEL. GetTables => Add QSPAGE. GetTables => Add RECIPE. GetTables => Add RECIPEITEM. GetTables => Add RECIPEPREPARATION. GetTables => Add RECIPEPREPARATIONITEM. GetTables => Add RELAYERROR. GetTables => Add REMOTELOCATION. GetTables => Add REMOTEOVERRIDEGROUP. GetTables => Add REMOTEOVERRIDEGROUPLOC. GetTables => Add ROSSSCHEDULERULE. GetTables => Add SALECATEGORY. GetTables => Add SECTION. GetTables => Add SELECTPOS. GetTables => Add SETTIMEPERIOD. GetTables => Add STAFF. GetTables => Add STAFFMESSAGE. GetTables => Add STOCKATZREDUCTION. GetTables => Add STOCKGROUP. GetTables => Add STOCKITEM. GetTables => Add STOCKLEVEL. GetTables => Add STOCKLOCATION. GetTables => Add STOCKPURCHORD. GetTables => Add STOCKPURCHORDLN. GetTables => Add STOCKRECEIPT. GetTables => Add STOCKSTACK. GetTables => Add STOCKTAKE. GetTables => Add STOCKTAKEDETAIL. GetTables => Add STOCKTRANSACTION. GetTables => Add SUPERITEMGROUP. GetTables => Add SUPPLIER. GetTables => Add SUPPLIERSTOCK. GetTables => Add SWIPECARD. GetTables => Add SYS. GetTables => Add TENDER. GetTables => Add TENLINE. GetTables => Add TENLNTYP. GetTables => Add TENLNTYPGRP. GetTables => Add TERMINAL. GetTables => Add TERMINALSTOCKLOCATION. GetTables => Add TILL. GetTables => Add TIMEPERIOD. GetTables => Add TMIMAGECOLLECTION. GetTables => Add TMTABLE. GetTables => Add TMTABLEAREA. GetTables => Add TRACETABLECHANGES. GetTables => Add TRANSFER. GetTables => Add UNIT. GetTables => Add VOID. GetTables => Add VOIDLN. GetTables => Add VOIDREASON. GetTables => Add WBLOGIN. GetTables => Add WORKAREA. GetTables => Add WPRIV. GetTables => Add ITEMSIZE. GetTables => Add COMBOS. GetTables => Add COMBOGROUPS. GetTables => Add COMBOGROUPITEMS. GetTables => Add COMBOGROUPLINKS. GetTables => Add LOGMSG. GetTables => Add APPSETTING. GetTables => Add SCHEDULEMANAGER. GetTables => Add SCHEDULEEVENT. GetTables => Add STOCKMANUALUSAGE. GetTables => Add STOCKMANUALUSAGEDETAIL. GetTables => Add FISCALSTOCKMOVEMENT. GetTables => Add FISCALSTOCKMOVEMENTDETAIL. GetTables => Add DBUPDATE. GetTables => Add MTEL_REPL. GetColumns GetColumns => 6 columns for table ACCFILTER GetColumns => 6 columns for table ACCFILTERITEM GetColumns => 19 columns for table ACCOUNT GetColumns => 18 columns for table ACCOUNTTRANSACTION GetColumns => 3 columns for table ACCPE GetColumns => 28 columns for table ACCTYPE GetColumns => 18 columns for table ADDRESSMAPLOCATION GetColumns => 54 columns for table AGROUP GetColumns => 17 columns for table ANORD GetColumns => 10 columns for table BOOKINGDETAIL GetColumns => 6 columns for table CALLAWY GetColumns => 23 columns for table CASHUP GetColumns => 5 columns for table CCPRINT GetColumns => 13 columns for table CLOCKIN GetColumns => 16 columns for table COURSE GetColumns => 11 columns for table CROL GetColumns => 5 columns for table CROLPRIV GetColumns => 5 columns for table CUTLTYP GetColumns => 9 columns for table DELIVERYLOCATION GetColumns => 7 columns for table DEPARTMENT GetColumns => 11 columns for table DISCOUNTSCHEME GetColumns => 10 columns for table DISCOUNTSCHEMEITEM GetColumns => 7 columns for table FISCALCASHUPDETAILS GetColumns => 2 columns for table FISCALCFOP GetColumns => 15 columns for table FISCALMANAGEMENTREPORTS GetColumns => 10 columns for table FISCALRECORDCOUNT GetColumns => 35 columns for table FISCALTRACEDETAILS GetColumns => 7 columns for table HELDGROUP GetColumns => 8 columns for table INTEREST GetColumns => 8 columns for table INTERESTPERORG GetColumns => 18 columns for table INVLINE GetColumns => 39 columns for table INVOICE GetColumns => 65 columns for table ITEM GetColumns => 33 columns for table ITEMGRP GetColumns => 7 columns for table ITEMGRPSHARE GetColumns => 4 columns for table ITEMMODGROUP GetColumns => 8 columns for table ITEMPR GetColumns => 14 columns for table ITEMSHARE GetColumns => 8 columns for table LOYALTYITEM GetColumns => 19 columns for table LOYALTYREWARD GetColumns => 10 columns for table MENUITEMLINK GetColumns => 16 columns for table MOD GetColumns => 14 columns for table MODGROUP GetColumns => 4 columns for table MODGROUPMOD GetColumns => 22 columns for table NFEDATA GetColumns => 11 columns for table NSTYPE GetColumns => 10 columns for table OLMOD GetColumns => 33 columns for table ORDLN GetColumns => 86 columns for table OUTLET GetColumns => 7 columns for table OUTLETACC GetColumns => 22 columns for table PARKEDSALE GetColumns => 7 columns for table PERIODEND GetColumns => 69 columns for table PERORG GetColumns => 32 columns for table PRINTER GetColumns => 10 columns for table PRINTEROVERRIDE GetColumns => 8 columns for table PRINTEROVERRIDEPRINTER GetColumns => 22 columns for table PRINTJOB GetColumns => 31 columns for table PSORDERLINE GetColumns => 9 columns for table PSTENDERLINE GetColumns => 40 columns for table QSBUTTON GetColumns => 5 columns for table QSIMAGE GetColumns => 26 columns for table QSLABEL GetColumns => 15 columns for table QSPAGE GetColumns => 7 columns for table RECIPE GetColumns => 6 columns for table RECIPEITEM GetColumns => 6 columns for table RECIPEPREPARATION GetColumns => 9 columns for table RECIPEPREPARATIONITEM GetColumns => 28 columns for table RELAYERROR GetColumns => 24 columns for table REMOTELOCATION GetColumns => 11 columns for table REMOTEOVERRIDEGROUP GetColumns => 7 columns for table REMOTEOVERRIDEGROUPLOC GetColumns => 13 columns for table ROSSSCHEDULERULE GetColumns => 31 columns for table SALECATEGORY GetColumns => 13 columns for table SECTION GetColumns => 24 columns for table SELECTPOS GetColumns => 11 columns for table SETTIMEPERIOD GetColumns => 20 columns for table STAFF GetColumns => 6 columns for table STAFFMESSAGE GetColumns => 7 columns for table STOCKATZREDUCTION GetColumns => 10 columns for table STOCKGROUP GetColumns => 35 columns for table STOCKITEM GetColumns => 9 columns for table STOCKLEVEL GetColumns => 6 columns for table STOCKLOCATION GetColumns => 15 columns for table STOCKPURCHORD GetColumns => 8 columns for table STOCKPURCHORDLN GetColumns => 16 columns for table STOCKRECEIPT GetColumns => 11 columns for table STOCKSTACK GetColumns => 7 columns for table STOCKTAKE GetColumns => 12 columns for table STOCKTAKEDETAIL GetColumns => 20 columns for table STOCKTRANSACTION GetColumns => 10 columns for table SUPERITEMGROUP GetColumns => 32 columns for table SUPPLIER GetColumns => 13 columns for table SUPPLIERSTOCK GetColumns => 12 columns for table SWIPECARD GetColumns => 47 columns for table SYS GetColumns => 41 columns for table TENDER GetColumns => 18 columns for table TENLINE GetColumns => 19 columns for table TENLNTYP GetColumns => 6 columns for table TENLNTYPGRP GetColumns => 28 columns for table TERMINAL GetColumns => 3 columns for table TERMINALSTOCKLOCATION GetColumns => 20 columns for table TILL GetColumns => 24 columns for table TIMEPERIOD GetColumns => 6 columns for table TMIMAGECOLLECTION GetColumns => 15 columns for table TMTABLE GetColumns => 13 columns for table TMTABLEAREA GetColumns => 11 columns for table TRACETABLECHANGES GetColumns => 16 columns for table TRANSFER GetColumns => 6 columns for table UNIT GetColumns => 11 columns for table VOID GetColumns => 9 columns for table VOIDLN GetColumns => 10 columns for table VOIDREASON GetColumns => 6 columns for table WBLOGIN GetColumns => 8 columns for table WORKAREA GetColumns => 5 columns for table WPRIV GetColumns => 9 columns for table ITEMSIZE GetColumns => 13 columns for table COMBOS GetColumns => 8 columns for table COMBOGROUPS GetColumns => 8 columns for table COMBOGROUPITEMS GetColumns => 11 columns for table COMBOGROUPLINKS GetColumns => 6 columns for table LOGMSG GetColumns => 9 columns for table APPSETTING GetColumns => 14 columns for table SCHEDULEMANAGER GetColumns => 13 columns for table SCHEDULEEVENT GetColumns => 7 columns for table STOCKMANUALUSAGE GetColumns => 9 columns for table STOCKMANUALUSAGEDETAIL GetColumns => 6 columns for table FISCALSTOCKMOVEMENT GetColumns => 10 columns for table FISCALSTOCKMOVEMENTDETAIL GetColumns => 6 columns for table DBUPDATE GetColumns => 4 columns for table MTEL_REPL GetPrimaryKeys GetPrimaryKeys => pk for table ACCFILTER found => PK_ACCFILTER with columns ACCFILTERID GetPrimaryKeys => pk for table ACCFILTERITEM found => PK_ACCFILTERITEM with columns ACCFILTERID,SALECATEGORYID,SECTIONID GetPrimaryKeys => pk for table ACCOUNT found => PK_ACCOUNT with columns ACCOUNTID GetPrimaryKeys => pk for table ACCOUNTTRANSACTION found => PK_ACCTRANS with columns ACCTRANSID GetPrimaryKeys => pk for table ACCPE found => PK_ACCPE with columns ACCOUNTID,PERIODENDID GetPrimaryKeys => pk for table ACCTYPE found => PK_ACCOUNTTYPE with columns ACCOUNTTYPEID GetPrimaryKeys => pk for table ADDRESSMAPLOCATION found => PK_ADDRMAPLOC with columns ADDRESSMAPLOCATIONID GetPrimaryKeys => pk for table AGROUP found => PK_AGROUP with columns GROUPID GetPrimaryKeys => pk for table ANORD found => PK_ANORD with columns ORDERID GetPrimaryKeys => pk for table BOOKINGDETAIL found => PK_BOOKDETAIL with columns BOOKINGDETAILID GetPrimaryKeys => pk for table CALLAWY found => PK_CALLWY with columns CALLAWAYID GetPrimaryKeys => pk for table CASHUP found => PK_CASHUPID with columns CASHUPID GetPrimaryKeys => pk for table CCPRINT found => PK_CCPRINT with columns PRINTERID,CCPRINTERID GetPrimaryKeys => pk for table CLOCKIN found => PK_CLOCKIN with columns CLOCKINID GetPrimaryKeys => pk for table COURSE found => PK_COURSE with columns COURSEID GetPrimaryKeys => pk for table CROL found => PK_CROL with columns CROLID GetPrimaryKeys => pk for table CROLPRIV found => PK_CROLPRIV with columns CROLID,WPRIVID GetPrimaryKeys => pk for table CUTLTYP found => PK_CUTLTYP with columns CASHUPID,TENDERLINETYPEID GetPrimaryKeys => pk for table DELIVERYLOCATION found => PK_DELLOC with columns DELIVERYLOCATIONID GetPrimaryKeys => pk for table DEPARTMENT found => PK_DEPARTMENT with columns DEPARTMENTID GetPrimaryKeys => pk for table DISCOUNTSCHEME found => PK_DISCOUNTSCHEME with columns DISCOUNTSCHEMEID GetPrimaryKeys => pk for table DISCOUNTSCHEMEITEM found => PK_DISCOUNTSCHEMEITEM with columns DISCOUNTSCHEMEITEMID GetPrimaryKeys => pk for table FISCALCASHUPDETAILS found => PK_FISCALCASHUPDETAILS with columns DETAILSID GetPrimaryKeys => pk for table FISCALCFOP found => PK_FISCALCFOP with columns CFOPID GetPrimaryKeys => pk for table FISCALMANAGEMENTREPORTS found => PK_FISCALMGMTREP with columns REPORTID GetPrimaryKeys => pk for table FISCALRECORDCOUNT not found GetPrimaryKeys => pk for table FISCALTRACEDETAILS found => PK_FISCALTRACEDET with columns TRACEID GetPrimaryKeys => pk for table HELDGROUP found => PK_HELDGROUP with columns HELDGROUPID GetPrimaryKeys => pk for table INTEREST found => PK_INTEREST with columns INTERESTID GetPrimaryKeys => pk for table INTERESTPERORG found => PK_INTERESTPERORG with columns INTERESTPERORGID GetPrimaryKeys => pk for table INVLINE found => PK_INVLINE with columns INVOICELINEID GetPrimaryKeys => pk for table INVOICE found => PK_INVOICE with columns INVOICEID GetPrimaryKeys => pk for table ITEM found => PK_ITEM with columns ITEMID GetPrimaryKeys => pk for table ITEMGRP found => PK_ITEMGRP with columns ITEMGROUPID GetPrimaryKeys => pk for table ITEMGRPSHARE found => PK_ITEMGRPSHARE with columns ITEMGROUPSHAREID GetPrimaryKeys => pk for table ITEMMODGROUP found => PK_ITEMMODGROUP with columns ITEMMODGROUPID GetPrimaryKeys => pk for table ITEMPR found => PK_ITEMPR with columns ITEMPRINTERID GetPrimaryKeys => pk for table ITEMSHARE found => PK_ITEMSHARE with columns ITEMSHAREID GetPrimaryKeys => pk for table LOYALTYITEM found => PK_LOYALTYITEM with columns LOYALTYITEMID GetPrimaryKeys => pk for table LOYALTYREWARD found => PK_LOYALTYREWARD with columns LOYALTYREWARDID GetPrimaryKeys => pk for table MENUITEMLINK found => PK_MENUITEMLINK with columns MENUITEMLINKID GetPrimaryKeys => pk for table MOD found => PK_MOD with columns MODIFIERID GetPrimaryKeys => pk for table MODGROUP found => PK_MODGROUP with columns MODGROUPID GetPrimaryKeys => pk for table MODGROUPMOD found => PK_MODGROUPMOD with columns MODGROUPMODID GetPrimaryKeys => pk for table NFEDATA found => PK_NFEDATA with columns NFEDATAID GetPrimaryKeys => pk for table NSTYPE found => PK_NSTYPE with columns NOSALETYPEID GetPrimaryKeys => pk for table OLMOD found => PK_OLMOD with columns ORDERLINEMODIFIERID GetPrimaryKeys => pk for table ORDLN found => PK_ORDLN with columns ORDERLINEID GetPrimaryKeys => pk for table OUTLET found => PK_OUTLET with columns OUTLETID GetPrimaryKeys => pk for table OUTLETACC found => PK_OUTLETACC with columns OUTLETID,ACCOUNTID GetPrimaryKeys => pk for table PARKEDSALE found => PK_PARKSALE with columns PARKEDSALEID GetPrimaryKeys => pk for table PERIODEND found => PK_PERIODEND with columns PERIODENDID GetPrimaryKeys => pk for table PERORG found => PK_PERORG with columns PERORGID GetPrimaryKeys => pk for table PRINTER found => PK_PRINTER with columns PRINTERID GetPrimaryKeys => pk for table PRINTEROVERRIDE found => PK_PRINTOVERRIDE with columns PRINTEROVERRIDEID GetPrimaryKeys => pk for table PRINTEROVERRIDEPRINTER found => PK_PRINTEROVERRIDEPRINTER with columns PRINTEROVERRIDEPRINTERID GetPrimaryKeys => pk for table PRINTJOB found => PK_PRINTJOB with columns PRINTJOBID GetPrimaryKeys => pk for table PSORDERLINE found => PK_PSORDERLINE with columns PSORDERLINEID GetPrimaryKeys => pk for table PSTENDERLINE found => PK_PSTENDERLINE with columns PSTENDERLINEID GetPrimaryKeys => pk for table QSBUTTON found => PK_QSBUTTON with columns QSBUTTONID GetPrimaryKeys => pk for table QSIMAGE found => PK_QSIMAGE with columns QSIMAGEID GetPrimaryKeys => pk for table QSLABEL found => PK_QSLABEL with columns QSLABELID GetPrimaryKeys => pk for table QSPAGE found => PK_QSPAGE with columns QSPAGEID GetPrimaryKeys => pk for table RECIPE found => PK_RECIPE with columns RECIPEID GetPrimaryKeys => pk for table RECIPEITEM found => PK_RECIPEITEM with columns RECIPEITEMID GetPrimaryKeys => pk for table RECIPEPREPARATION found => PK_RECIPEPREPARATION with columns RECIPEPREPARATIONID GetPrimaryKeys => pk for table RECIPEPREPARATIONITEM found => PK_RECIPEPREPARATIONITEM with columns RECIPEPREPARATIONITEMID GetPrimaryKeys => pk for table RELAYERROR found => PK_RELAYERROR with columns RELAYERRORID GetPrimaryKeys => pk for table REMOTELOCATION found => PK_REMOTELOCATION with columns REMOTELOCATIONID GetPrimaryKeys => pk for table REMOTEOVERRIDEGROUP found => PK_REMOTEOVERRIDEGROUP with columns REMOTEOVERRIDEGROUPID GetPrimaryKeys => pk for table REMOTEOVERRIDEGROUPLOC found => PK_REMOTEOVERRIDEGROUPLOC with columns REMOTEOVERRIDEGROUPLOCID GetPrimaryKeys => pk for table ROSSSCHEDULERULE found => PK_ROSSSCHEDULERULE with columns ROSSSCHEDULERULEID GetPrimaryKeys => pk for table SALECATEGORY found => PK_SALECATEGORY with columns SALECATEGORYID GetPrimaryKeys => pk for table SECTION found => PK_SECTION with columns SECTIONID GetPrimaryKeys => pk for table SELECTPOS found => PK_SELECTPOS with columns SELECTPOSID GetPrimaryKeys => pk for table SETTIMEPERIOD found => PK_SETTIMEPERIOD with columns SETTIMEPERIODID GetPrimaryKeys => pk for table STAFF found => PK_STAFF with columns STAFFID GetPrimaryKeys => pk for table STAFFMESSAGE found => PK_STAFFMESSAGE with columns STAFFMESSAGEID GetPrimaryKeys => pk for table STOCKATZREDUCTION found => PK_STOCKATZREDUCTION with columns STOCKID GetPrimaryKeys => pk for table STOCKGROUP found => PK_STOCKGROUP with columns GROUPID GetPrimaryKeys => pk for table STOCKITEM found => PK_STOCKITEM with columns STOCKID GetPrimaryKeys => pk for table STOCKLEVEL found => PK_STOCKLEVEL with columns STOCKLEVELID GetPrimaryKeys => pk for table STOCKLOCATION found => PK_STOCKLOCATION with columns LOCATIONID GetPrimaryKeys => pk for table STOCKPURCHORD found => PK_STOCKPURCHORD with columns PURCHORDID GetPrimaryKeys => pk for table STOCKPURCHORDLN found => PK_STOCKPURCHORDLN with columns PURCHORDLNID GetPrimaryKeys => pk for table STOCKRECEIPT found => PK_STOCKRECEIPT with columns RECEIPTID GetPrimaryKeys => pk for table STOCKSTACK found => PK_SSTOCKSTACK with columns STACKID GetPrimaryKeys => pk for table STOCKTAKE found => PK_STOCKTAKE with columns STOCKTAKEID GetPrimaryKeys => pk for table STOCKTAKEDETAIL found => PK_STOCKTAKEDETAIL with columns STOCKTAKEITEMID GetPrimaryKeys => pk for table STOCKTRANSACTION found => PK_STOCKTRANSACTION with columns TRANSID GetPrimaryKeys => pk for table SUPERITEMGROUP found => PK_SUPERITEMGROUPID with columns SUPERITEMGROUPID GetPrimaryKeys => pk for table SUPPLIER found => PK_SUPPLIER with columns SUPPLIERID GetPrimaryKeys => pk for table SUPPLIERSTOCK found => PK_SUPPLIERSTOCK with columns SUPPLIERSTOCKID GetPrimaryKeys => pk for table SWIPECARD found => PK_SWIPECARD with columns SWIPECARDID GetPrimaryKeys => pk for table SYS not found GetPrimaryKeys => pk for table TENDER found => PK_TENDER with columns TENDERID GetPrimaryKeys => pk for table TENLINE found => PK_TENLINE with columns TENDERLINEID GetPrimaryKeys => pk for table TENLNTYP found => PK_TENLNTYP with columns TENDERLINETYPEID GetPrimaryKeys => pk for table TENLNTYPGRP found => PK_TENLNTYPGRP with columns TENLINETYPEGROUPID GetPrimaryKeys => pk for table TERMINAL found => PK_TERMINAL with columns TERMINALID GetPrimaryKeys => pk for table TERMINALSTOCKLOCATION found => PK_TERMINALSTOCKLOCATION with columns TERMINALID,LOCATIONID GetPrimaryKeys => pk for table TILL found => PK_TILL with columns TILLID GetPrimaryKeys => pk for table TIMEPERIOD found => PK_TIMEPERIOD with columns TIMEPERIODID GetPrimaryKeys => pk for table TMIMAGECOLLECTION found => PK_TMIMAGECOLLECTION with columns TMIMAGECOLLECTIONID GetPrimaryKeys => pk for table TMTABLE found => PK_TMTABLE with columns TMTABLEID GetPrimaryKeys => pk for table TMTABLEAREA found => PK_TMTABLEAREA with columns TMTABLEAREAID GetPrimaryKeys => pk for table TRACETABLECHANGES found => PK_TRACETABLECHANGES with columns TRACEID GetPrimaryKeys => pk for table TRANSFER found => PK_TRANSFER with columns TRANSFERID GetPrimaryKeys => pk for table UNIT found => PK_UNIT with columns UNITID GetPrimaryKeys => pk for table VOID found => PK_VOID with columns VOIDID GetPrimaryKeys => pk for table VOIDLN found => PK_VOIDLN with columns VOIDLINEID GetPrimaryKeys => pk for table VOIDREASON found => RK_VOIDREASON with columns VOIDREASONID GetPrimaryKeys => pk for table WBLOGIN found => PK_WBLOGIN with columns LOGINID GetPrimaryKeys => pk for table WORKAREA found => PK_WORKAREA with columns WORKAREAID GetPrimaryKeys => pk for table WPRIV found => PK_WPRIV with columns WPRIVID GetPrimaryKeys => pk for table ITEMSIZE found => RDB$PRIMARY1 with columns SIZEID GetPrimaryKeys => pk for table COMBOS found => RDB$PRIMARY3 with columns COMBOID GetPrimaryKeys => pk for table COMBOGROUPS found => RDB$PRIMARY5 with columns COMBOGROUPID GetPrimaryKeys => pk for table COMBOGROUPITEMS found => PK_COMBOGROUPITEMS with columns COMBOGROUPITEMID GetPrimaryKeys => pk for table COMBOGROUPLINKS found => PK_COMBOGROUPLINKS with columns COMBOGROUPLINKID GetPrimaryKeys => pk for table LOGMSG found => PK_LOGMSG with columns LOGMSGID GetPrimaryKeys => pk for table APPSETTING found => PK_APPSETTING with columns APPSETTINGID GetPrimaryKeys => pk for table SCHEDULEMANAGER found => PK_SCHEDULEMANAGER with columns SCHEDULEMANAGERID GetPrimaryKeys => pk for table SCHEDULEEVENT found => PK_SCHEDULEEVENT with columns SCHEDULEEVENTID GetPrimaryKeys => pk for table STOCKMANUALUSAGE found => PK_STOCKMANUALUSAGE with columns STOCKMANUALUSAGEID GetPrimaryKeys => pk for table STOCKMANUALUSAGEDETAIL found => PK_STOCKMANUALUSAGEDETAIL with columns STOCKMANUALUSAGEDETAILID GetPrimaryKeys => pk for table FISCALSTOCKMOVEMENT found => PK_FISCALSTOCKMOVEMENT with columns FISCALSTOCKMOVEMENTID GetPrimaryKeys => pk for table FISCALSTOCKMOVEMENTDETAIL found => PK_FISCALSTOCKMOVEMENTDETAIL with columns FISCALSTOCKMOVEMENTDETAILID GetPrimaryKeys => pk for table DBUPDATE found => PK_DBUPDATE with columns DBUPDATEID GetPrimaryKeys => pk for table MTEL_REPL found => PK_MTEL_REPL with columns NAME GetIndexes GetIndexes => Table ACCFILTER => 0 index found GetIndexes => Table ACCFILTERITEM => 0 index found GetIndexes => Table ACCOUNT => 0 index found GetIndexes => Table ACCOUNTTRANSACTION => 0 index found GetIndexes => Table ACCPE => 0 index found GetIndexes => Table ACCTYPE => 0 index found GetIndexes => Table ADDRESSMAPLOCATION => 0 index found GetIndexes => Table AGROUP => 0 index found GetIndexes => Table ANORD => 0 index found GetIndexes => Table BOOKINGDETAIL => 0 index found GetIndexes => Table CALLAWY => 0 index found GetIndexes => Table CASHUP => 0 index found GetIndexes => Table CCPRINT => 0 index found GetIndexes => Table CLOCKIN => 0 index found GetIndexes => Table COURSE => 4 index found GetIndexes => Table CROL => 2 index found GetIndexes => Table CROLPRIV => 0 index found GetIndexes => Table CUTLTYP => 0 index found GetIndexes => Table DELIVERYLOCATION => 0 index found GetIndexes => Table DEPARTMENT => 0 index found GetIndexes => Table DISCOUNTSCHEME => 0 index found GetIndexes => Table DISCOUNTSCHEMEITEM => 0 index found GetIndexes => Table FISCALCASHUPDETAILS => 0 index found GetIndexes => Table FISCALCFOP => 0 index found GetIndexes => Table FISCALMANAGEMENTREPORTS => 0 index found GetIndexes => Table FISCALRECORDCOUNT => 0 index found GetIndexes => Table FISCALTRACEDETAILS => 0 index found GetIndexes => Table HELDGROUP => 0 index found GetIndexes => Table INTEREST => 0 index found GetIndexes => Table INTERESTPERORG => 0 index found GetIndexes => Table INVLINE => 0 index found GetIndexes => Table INVOICE => 0 index found GetIndexes => Table ITEM => 0 index found GetIndexes => Table ITEMGRP => 0 index found GetIndexes => Table ITEMGRPSHARE => 0 index found GetIndexes => Table ITEMMODGROUP => 0 index found GetIndexes => Table ITEMPR => 0 index found GetIndexes => Table ITEMSHARE => 0 index found GetIndexes => Table LOYALTYITEM => 0 index found GetIndexes => Table LOYALTYREWARD => 4 index found GetIndexes => Table MENUITEMLINK => 0 index found GetIndexes => Table MOD => 0 index found GetIndexes => Table MODGROUP => 4 index found GetIndexes => Table MODGROUPMOD => 0 index found GetIndexes => Table NFEDATA => 0 index found GetIndexes => Table NSTYPE => 0 index found GetIndexes => Table OLMOD => 0 index found GetIndexes => Table ORDLN => 0 index found GetIndexes => Table OUTLET => 0 index found GetIndexes => Table OUTLETACC => 0 index found GetIndexes => Table PARKEDSALE => 0 index found GetIndexes => Table PERIODEND => 0 index found GetIndexes => Table PERORG => 0 index found GetIndexes => Table PRINTER => 0 index found GetIndexes => Table PRINTEROVERRIDE => 0 index found GetIndexes => Table PRINTEROVERRIDEPRINTER => 0 index found GetIndexes => Table PRINTJOB => 0 index found GetIndexes => Table PSORDERLINE => 0 index found GetIndexes => Table PSTENDERLINE => 0 index found GetIndexes => Table QSBUTTON => 0 index found GetIndexes => Table QSIMAGE => 0 index found GetIndexes => Table QSLABEL => 0 index found GetIndexes => Table QSPAGE => 0 index found GetIndexes => Table RECIPE => 0 index found GetIndexes => Table RECIPEITEM => 0 index found GetIndexes => Table RECIPEPREPARATION => 0 index found GetIndexes => Table RECIPEPREPARATIONITEM => 0 index found GetIndexes => Table RELAYERROR => 0 index found GetIndexes => Table REMOTELOCATION => 0 index found GetIndexes => Table REMOTEOVERRIDEGROUP => 0 index found GetIndexes => Table REMOTEOVERRIDEGROUPLOC => 0 index found GetIndexes => Table ROSSSCHEDULERULE => 0 index found GetIndexes => Table SALECATEGORY => 4 index found GetIndexes => Table SECTION => 5 index found GetIndexes => Table SELECTPOS => 0 index found GetIndexes => Table SETTIMEPERIOD => 0 index found GetIndexes => Table STAFF => 0 index found GetIndexes => Table STAFFMESSAGE => 1 index found GetIndexes => Table STOCKATZREDUCTION => 0 index found GetIndexes => Table STOCKGROUP => 0 index found GetIndexes => Table STOCKITEM => 0 index found GetIndexes => Table STOCKLEVEL => 0 index found GetIndexes => Table STOCKLOCATION => 0 index found GetIndexes => Table STOCKPURCHORD => 0 index found GetIndexes => Table STOCKPURCHORDLN => 0 index found GetIndexes => Table STOCKRECEIPT => 0 index found GetIndexes => Table STOCKSTACK => 0 index found GetIndexes => Table STOCKTAKE => 0 index found GetIndexes => Table STOCKTAKEDETAIL => 0 index found GetIndexes => Table STOCKTRANSACTION => 0 index found GetIndexes => Table SUPERITEMGROUP => 5 index found GetIndexes => Table SUPPLIER => 0 index found GetIndexes => Table SUPPLIERSTOCK => 0 index found GetIndexes => Table SWIPECARD => 0 index found GetIndexes => Table SYS => 0 index found GetIndexes => Table TENDER => 0 index found GetIndexes => Table TENLINE => 0 index found GetIndexes => Table TENLNTYP => 0 index found GetIndexes => Table TENLNTYPGRP => 0 index found GetIndexes => Table TERMINAL => 0 index found GetIndexes => Table TERMINALSTOCKLOCATION => 0 index found GetIndexes => Table TILL => 0 index found GetIndexes => Table TIMEPERIOD => 0 index found GetIndexes => Table TMIMAGECOLLECTION => 0 index found GetIndexes => Table TMTABLE => 0 index found GetIndexes => Table TMTABLEAREA => 0 index found GetIndexes => Table TRACETABLECHANGES => 0 index found GetIndexes => Table TRANSFER => 0 index found GetIndexes => Table UNIT => 0 index found GetIndexes => Table VOID => 0 index found GetIndexes => Table VOIDLN => 0 index found GetIndexes => Table VOIDREASON => 4 index found GetIndexes => Table WBLOGIN => 0 index found GetIndexes => Table WORKAREA => 0 index found GetIndexes => Table WPRIV => 1 index found GetIndexes => Table ITEMSIZE => 0 index found GetIndexes => Table COMBOS => 0 index found GetIndexes => Table COMBOGROUPS => 0 index found GetIndexes => Table COMBOGROUPITEMS => 0 index found GetIndexes => Table COMBOGROUPLINKS => 0 index found GetIndexes => Table LOGMSG => 1 index found GetIndexes => Table APPSETTING => 0 index found GetIndexes => Table SCHEDULEMANAGER => 0 index found GetIndexes => Table SCHEDULEEVENT => 0 index found GetIndexes => Table STOCKMANUALUSAGE => 0 index found GetIndexes => Table STOCKMANUALUSAGEDETAIL => 0 index found GetIndexes => Table FISCALSTOCKMOVEMENT => 0 index found GetIndexes => Table FISCALSTOCKMOVEMENTDETAIL => 0 index found GetIndexes => Table DBUPDATE => 0 index found GetIndexes => Table MTEL_REPL => 0 index found GetConstraints GetConstraints => Table ACCFILTER => 0 PK ==> Table ACCFILTERITEM => FK_ACCFILTERITM_ID, PrincipalTable ACCFILTER, ACCFILTERID#0, ACCFILTERID#0 GetConstraints => Table ACCFILTERITEM => 1 PK ==> Table ACCOUNT => FK_ACCT_LOGINID, PrincipalTable WBLOGIN, LOGINID#0, LOGINID#0 PK ==> Table ACCOUNT => FK_ACCT_PERORGID, PrincipalTable PERORG, PERORGID#0, PERORGID#0 PK ==> Table ACCOUNT => FK_ACCT_TYPEID, PrincipalTable ACCTYPE, ACCOUNTTYPEID#0, ACCOUNTTYPEID#0 GetConstraints => Table ACCOUNT => 3 PK ==> Table ACCOUNTTRANSACTION => FK_ACCTRANS_LOGINID, PrincipalTable WBLOGIN, WHOTRANSACTION#0, LOGINID#0 System.InvalidOperationException: Sequence contains no matching element at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source, Func`2 predicate) at Microsoft.EntityFrameworkCore.Scaffolding.Internal.FirebirdDatabaseModelFactory.GetConstraints() at Microsoft.EntityFrameworkCore.Scaffolding.Internal.FirebirdDatabaseModelFactory.Create(DbConnection connection, TableSelectionSet tableSelectionSet) at Microsoft.EntityFrameworkCore.Scaffolding.Internal.FirebirdDatabaseModelFactory.Create(DbConnection connection, IEnumerable`1 tables, IEnumerable`1 schemas) at Microsoft.EntityFrameworkCore.Scaffolding.Internal.FirebirdDatabaseModelFactory.Create(String connectionString, IEnumerable`1 tables, IEnumerable`1 schemas) at Microsoft.EntityFrameworkCore.Scaffolding.Internal.RelationalScaffoldingModelFactory.Create(String connectionString, IEnumerable`1 tables, IEnumerable`1 schemas, Boolean useDatabaseNames) at Microsoft.EntityFrameworkCore.Scaffolding.Internal.ModelScaffolder.Generate(String connectionString, IEnumerable`1 tables, IEnumerable`1 schemas, String projectPath, String outputPath, String rootNamespace, String contextName, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames) at Microsoft.EntityFrameworkCore.Design.Internal.DatabaseOperations.ScaffoldContext(String provider, String connectionString, String outputDir, String dbContextClassName, IEnumerable`1 schemas, IEnumerable`1 tables, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContextImpl(String provider, String connectionString, String outputDir, String dbContextClassName, IEnumerable`1 schemaFilters, IEnumerable`1 tableFilters, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContext.<>c__DisplayClass0_1.<.ctor>b__0() at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>c__DisplayClass3_0`1.b__0() at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action) ```
JeanRessouche commented 7 years ago

Thanks, indeed that's helping a lot.

ebolefeysot commented 5 years ago

Hi Here is a sql script to create two small tables and reproduce the problem:

` SET SQL DIALECT 3;

--drop table roms; --drop table games;

/**/ / Tables / /**/ RECREATE TABLE ROMS ( ROMID INTEGER NOT NULL, GAMEIDENT INTEGER );

RECREATE TABLE GAMES ( GAMEID INTEGER NOT NULL );

/**/ / Primary keys / /**/ ALTER TABLE GAMES ADD PRIMARY KEY (GAMEID); ALTER TABLE ROMS ADD PRIMARY KEY (ROMID);

/**/ / Foreign keys / /**/ ALTER TABLE ROMS ADD CONSTRAINT FK_ROMS_1 FOREIGN KEY (GAMEIDENT) REFERENCES GAMES (GAMEID); `

And now the scaffold command:

`Scaffold-DbContext "User=SYSDBA;Password=masterkey;Database=c:/temp/db.bin; DataSource=127.0.0.1;Port=3050;" SouchProd.EntityFrameworkCore.Firebird

GetTables GetTables => Add ROMS. GetTables => Add GAMES. GetColumns GetColumns => 2 columns for table ROMS GetColumns => 1 columns for table GAMES GetPrimaryKeys GetPrimaryKeys => pk for table ROMS found => RDB$PRIMARY30 with columns ROMID GetPrimaryKeys => pk for table GAMES found => RDB$PRIMARY29 with columns GAMEID GetIndexes GetIndexes => Table ROMS => 0 index found GetIndexes => Table GAMES => 0 index found GetConstraints PK ==> Table ROMS => FK_ROMS_1, PrincipalTable GAMES, GAMEIDENT#0, GAMEID#0 System.InvalidOperationException: Sequence contains no matching element at System.Linq.Enumerable.Single[TSource](IEnumerable1 source, Func2 predicate) at Microsoft.EntityFrameworkCore.Scaffolding.Internal.FirebirdDatabaseModelFactory.GetConstraints() at Microsoft.EntityFrameworkCore.Scaffolding.Internal.FirebirdDatabaseModelFactory.Create(DbConnection connection, TableSelectionSet tableSelectionSet) at Microsoft.EntityFrameworkCore.Scaffolding.Internal.FirebirdDatabaseModelFactory.Create(DbConnection connection, IEnumerable1 tables, IEnumerable1 schemas) at Microsoft.EntityFrameworkCore.Scaffolding.Internal.FirebirdDatabaseModelFactory.Create(String connectionString, IEnumerable1 tables, IEnumerable1 schemas) at Microsoft.EntityFrameworkCore.Scaffolding.Internal.ReverseEngineerScaffolder.ScaffoldModel(String connectionString, IEnumerable1 tables, IEnumerable1 schemas, String namespace, String language, String contextDir, String contextName, ModelReverseEngineerOptions modelOptions, ModelCodeGenerationOptions codeOptions) at Microsoft.EntityFrameworkCore.Design.Internal.DatabaseOperations.ScaffoldContext(String provider, String connectionString, String outputDir, String outputContextDir, String dbContextClassName, IEnumerable1 schemas, IEnumerable1 tables, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContextImpl(String provider, String connectionString, String outputDir, String outputDbContextDir, String dbContextClassName, IEnumerable1 schemaFilters, IEnumerable1 tableFilters, Boolean useDataAnnotations, Boolean overwriteFiles, Boolean useDatabaseNames) at Microsoft.EntityFrameworkCore.Design.OperationExecutor.ScaffoldContext.<>cDisplayClass0_1.<.ctor>b0() at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.<>cDisplayClass3_0`1.b0() at Microsoft.EntityFrameworkCore.Design.OperationExecutor.OperationBase.Execute(Action action) Sequence contains no matching element `