Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle primary keys not defined in SQL #8

Closed
JeanCollas opened this issue Jun 11, 2018 · 6 comments
Closed

Handle primary keys not defined in SQL #8

JeanCollas opened this issue Jun 11, 2018 · 6 comments

Comments

@JeanCollas
Copy link

JeanCollas commented Jun 11, 2018

When primary key is not defined in SQL DB, many null exceptions are thrown instead of logging the error.

@JonPSmith
Copy link
Owner

Hi @JeanCollas,

Not defining a primary key in a class for EF Core would be caught when EF Core tries to build its model of the database. I don't think this a logging issue or an issue with the EfCore.TestSupport library.

@JeanCollas
Copy link
Author

JeanCollas commented Jun 12, 2018

Actually I had Id keys missing on tables, the site runs well, but the script TestSupport crashes.
If you set the field Id as key, EF Core considers that the Id field is a key, even if it is not the case in the DB and it doesn't check it (it still works, it just has performances issues).

@JonPSmith
Copy link
Owner

OK, now I understand a bit better. When you say that

the script TestSupport crashes.

Do you think there is a bug in EfCore.TestSupport? If so, in what area?

@JeanCollas
Copy link
Author

JeanCollas commented Jun 12, 2018

Yes, you may try it by just temporary removing one primary key in the SQL.
You will find that in Stage1Comparer, all statements like entityType.FindPrimaryKey().Relational().Name will break with a NullException (as the FindPrimaryKey() returns null), which is forwarded in CompareEfWithDb.
And of course the method CompareForeignKeys never completes, but also CompareColumns which checks for the primary key.

@JeanCollas JeanCollas changed the title Handle not explicitly defined primary keys Handle primary keys not defined in SQL Jun 12, 2018
@JonPSmith
Copy link
Owner

Thanks for the feedback - that make sense. I'm quite busy at the moment so I won't fix this at the moment. I will leave this issue open.

@JonPSmith
Copy link
Owner

hi @JeanCollas,

I have just released EfCore.TestSupport 1.5.2. In this I filter out DbQuery types, which was what caused the "no primary key" exception.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants