►
Description
In this special edition of the EF Core Community Standup, we celebrate the release of EF Core 5.0 with a community panel. We'll welcome Entity Framework luminaries Diego Vega, Erik E Jensen, Jon P Smith and Julie Lerman to discuss their favorite features and answer your questions live.
Community Links: https://www.theurlist.com/efcore-standup-2020-11-18
Featuring: Diego Vega (@divega), Erik E Jensen (@ErikEJ), Jon P Smith (@thereformedprog), Julie Lerman (@julielerman)
#Microsoft #entityframework #efcore #efcore5
A
A
A
A
Hello
and
welcome
to
the
entity
framework
community
stand-up.
We
have
a
special
edition
today,
as
I
think
you
can
see
from
everybody
that
we
have
on
the
screen
here
since
we've
just
released
ef
core50
we're
having
a
celebration
today,
we
will
be
showing
some
code
later,
but
we're
also
going
to
be
a
hat
with
chat.
A
Sorry
with
all
these
wonderful
pillars
of
the
ef
community
here
and
we're
going
to
talk
about
some
history
as
well
as
look
at
some
of
the
code
but
we'll
post
links
in
the
in
the
show
notes
for
places,
you
can
go
and
find
more
detail,
but
let's
have
some
some
fun
today,
then
there
may
be
cake
later,
but
I'm
not
promising
anything.
A
Okay.
So
let's
introduce
everybody.
So
I'm
arthur
I'm
the
engineering
manager
on
entity
framework
and,
more
interestingly,
we
have
four
pillars
of
the
ef
community
online.
So
julie,
would
you
like
to
introduce
yourself.
B
Hi
my
name's
julie
lerman.
I
probably
saw
entity
framework,
maybe
before
everybody
in
this
call,
except
for
diego.
I
am
2006.
B
Been
you
know,
fiddling
with
and
trying
to
keep
up
with
the
pace
of
entity
framework
as
it's
evolved
for
14
years,
yeah.
A
Yeah
excellent
great
to
have
you
here,
julie,
and
we
also
have
john
smith
john.
D
Hi
there
yeah
well
julie,
wrote
this
great
tome
how.
D
Yeah
back
in
the
day-
and
I
haven't
got
to
that
point-
but
I've
got
a
book-
this
is
the
first
book,
but
I'm
updating
it
to
ef
core5
and
it's
it's
got
added
about
100
pages
to
the
the
book
and
bryce
might
like
to
know
that
the
migration
chapter
has
gone
from
32
pages
to
41.
A
Yeah
pages
great
to
have
you
here,
john
and
then
we
have
eric
ej,
I'm
not
going
to
attempt
to
pronounce
your
full
name.
Welcome
eric.
F
That's
fine.
Everybody
knows
me
as
justice
eric
ej.
So
let's
stick
to
that.
For
the
sake
of,
for
the
sake
of
everybody,
I'm
been
involved
with
entity
framework
since
I
suppose
ef5
ef6
times
when
I
was
helping
maintain
the
sql
server
compact
provider.
F
Betas,
it
was
so
painful
and
the
product
name
changed.
Everything
changed
all
the
namespaces
changed
so
so
that
was
a
an
experience
and
my
current
endeavor
in
the
ef
universe
is
a
maintenance
of
ef
core
power
tools.
A
Excellent,
yes
great
to
have
you
here
eric
and
then
finally,
we
have
for
our
guest.
We
have
diego.
Now
I
think
everybody
remembers
diego
used
to
be
a
pm
on
the
team
was
for
many
many
years
he's
been
away
from
microsoft
for
a
while,
but
he's
back
doing
not
entity,
fragment
stuff
but
other
interesting
things.
So
diego
you
want
to
introduce
yourself.
C
G
H
A
Diego
was
a
big
part
of
many
to
many,
so
it's
really
good
to
have
them
on
to
talk
about
many
too
many,
so
we'll
get
to
that
a
bit
a
bit
later
on.
We
also
have
people
from
the
team
on
the
call,
so
jeremy,
you
want
to
introduce
yourself.
I
Sure
jeremy
likness
is
how
to
pronounce
my
last
name
in
case
anyone's
curious.
It
could
go
either
way,
likeness
or
likeness.
So
it's
the
the
latter
and
I'm
a
program
manager
for
dotnet
data,
which
obviously
a
huge
part
of
that
is
the
annuity
framework
team.
I
was
exposing
any
framework
using
the
technology.
People
don't
like
to
talk
about
today,
but
that
I
just
loved,
which
was
silverlight
and
used
it
quite
a
bit
for
the
back
end
and
some
fun
things
like
wcf,
rhea
services.
Remember
those
so.
A
Excellent
stuff
shy.
J
Yeah,
my
name
is
shiro
jansky,
I'm
just
a
boring
engineer
on
the
team
on
the
ef
team.
I
do
I
do
a
lot
of
work
on
postgres
on
lower
level
data
stuff,
like
system
data
that
ef
core
is
built
on
top
of
and
dapper
and
other
things,
and
I'm
I
have
a
special
place
in
my
heart
for
performance
and
I
hope
we'll
see
some
of
that
in
six.
A
Yeah
so
shai
used
to
work
with
us
as
a
as
a
collaborator
contributor
for
the
postgres
provider
for
many
years
and
luckily
we've
we
managed
to
actually
get
him
to
hire
him
to
work
full-time
on
this
stuff.
So
so
that's
that's
worked
out
great
and
bryce.
C
Hey
I'm
bryce
lamson
I've
been
on
I'm
an
engineer
on
the
team.
I've
been
here
about
10
years
fun
fact.
I
helped
the
ria
services
team
at
energy
framework
success.
A
Okay,
so
let's
so
last
time
we
we
started
doing
this
thing
where
we
go
over
the
current
state
of
affairs
in
the
world
of
entity
framework
with
this
section
that
I
now
think
is
tradition
because
we're
doing
it
twice
and
we're
calling
it
state
of
the
unicorn
and
normally
we
have
links
and
stuff
here.
But
well
this
time,
it's
basically
just
celebration,
ef
core
five
is
out.
That
is
the
state
of
the
unicorn.
A
Ef
core5,
yet
it's
out
there
on
youget,
you
can
find
more
information
on
the
link
that
jeremy
just
put
up
there,
get
it
from
youget.
Look
at
the
blog
post.
You
know:
look
at
some
of
our
old
community
stand-ups
for
information.
Julie
wrote
a
great
article
in
code
magazine,
there's
lots
of
information
out.
There
go,
try
it
and
if
you
find
bugs-
and
you
report
them
to
us
in
the
next
couple
of
days,
there
may
still
be
chance
to
get
them
into
the
first
patch.
A
So
it's
important
that
you
give
it
a
shot,
so
we
can
find
any
issues
that
are
still
remaining
so
yeah.
So,
let's
without
anything
else,
let's,
let's
move
on
to
talking
about
the
the
features
and
the
stuff
that
we
put
in
so
oh,
I
should
mention.
Also.
A
We
asked
before
this
this
this
streaming
session
for
all
of
the
guests
to
come
up
with
some
memory
or
anecdote
or
something
from
the
from
the
ef
core
past
that
they
would
like
to
share
with
us.
So
for
each
of
the
guests,
we're
going
to
start
off
with
that
and
I'm
going
to
start
with
julie,
so
julie.
A
Welcome
what
do
you
remember
from
the
past.
B
I
was
just
flipping
on
youtube,
so
I
could
actually
participate
in
the
conversation
with
everybody,
and
so
I
like
the
bad
student,
so
I
missed
your
question
arthur
my.
B
Yeah
you
know
I
do
want
to
talk
about
that.
First
time
I
saw
it,
which
was
at
in
2006
at
tech,
ed,
which
was
in
boston.
I
remember
that
because
it
was
the
actual
only
ticket
I
actually
got
to
drive
to,
because
I
live
in
vermont.
So
it's
like
a
four
four
hour
drive
and
yeah
they,
so
it
didn't
even
have
a
name
yet
entity
frame
had
was
something
that
was
being
worked
on
at
microsoft.
B
Research
based
on
you
know,
entity,
data,
modeling
and
all
kinds
of
known
stuff,
and
it
was
just
I
guess,
the
the
sql
server,
like
all
of
the
data
access
idio.net,
was
still
under
the
sql
server
umbrella.
That's.
B
That
I
can't
believe
it
like
my
my
short-term
memory
is
so
bad.
My
long-term
memory
is
great,
so
they
pablo
right
who
was
you
know
like
yeah,
brilliant
he's
such
a
brilliant
guy.
B
A
handful
of
people
like
and
when
I
say
a
handful,
I
mean
like
three
or
four
people
to
a
meeting
where
they
were
showing
us
this
orm
they
were
working
on.
So
that
was
really
my
first
time
seeing
it
and
interestingly,
I
had
not
been
using
other
orms
like
so.
The
whole
concept
of
orm
was
very
new
to
me
when
I
was
seeing
ef
for
the
first
time
and
therefore
it
was
like.
Oh,
this
is
so.
A
You
come
to
be
the
one
writing
the
big
tone
of
a
book
about
it.
B
B
B
Not
gonna
happen,
it's
not
gonna
happen
and
I
was
like.
Oh,
this
is
really
fun,
so
I
was
doing
more
and
more
about
it,
and
then
somebody
would
ask
me
to
write
an
article
and
they
would
say
you
cannot.
It
can't
be
longer
than
five
thousand
words
and
I
was
like,
but
but
I
have
so
much
to
sell,
and
so
you
know,
after
a
while,
their
different
publishers
were
asking
me
to
to
write.
B
A
So
one
of
the
things
I
remember
about
you
writing
the
book,
which
I
thought
was
really
cool
is
that
you
had
constant
communication
with
the
team.
You
would
constantly
ask
and
say
hey
what
about
this.
What
about
that
and
that's
what
john
jonah
has
a
similar
communication
with
the
team
you
know
have
has
those
review
chapters
and
I
think
that
really
helps
to
create
great
books.
It's
like
you've
got
somebody
outside
trying
to
explain
it
in
a
way
that
has
a
different
perspective
from
somebody.
B
C
B
Just
couldn't
I
just
couldn't,
do
it
again,
but
you
know
o'reilly's
asked
me
if
other
peop,
if
you
know
somebody
else,
could
take
over
the
title,
I'm
like
no,
because
I
I
really
didn't
want
that,
because
I
was
afraid
people
would
assume
that
whoever
they
got
to
write
it.
Who
knows
who
would
not
care
as
much
as
I
had
and
and.
A
I
think
both
great
books,
okay,
should
we
should
we
look
at
some
code,
so
you
chose
log2
as
as
your
feature.
A
I'm
gonna
go
on
presentation
mode
here,
which
is
not
something
I'm
super
used
to
yet,
but
it's
it's
a
pretty
easy
way
of
getting
a
big
font,
so
I've
set
up
just
a
simple
example
here.
This
is
blogs
and
posts.
You
know
adding
blog
putting
posts
in
there
all
the
stuff
that
you
people
are
used
to
seeing
and
then
down.
In
my
context,
configuration
here,
we've
got
log2
setup
as
we
had
it
in
the
blog
post.
A
And
there
we
go,
and
by
default
the
log
logging
level
is
a
debug.
We
can
easily
switch
it
to
to
information
so
I'll.
Do
that
real
quickly,
just
by
doing
a
log
level,
information
here
and
then
run
again
and
we
get
output
again
but
limited
to
less
stuff,
just
the
info
level
julie,
anything
you
want
anything
else.
You
want
to
add
to
this.
You
know
what
other
things
should
we
try
things
that
you
particularly
like
just
talk
about
it.
I
don't
mind.
B
Well,
you
know,
bringing
in
the
the
filtering
is
is
interesting.
It's
pretty
similar
to
the
way
we
had
it
before
before
it
was
logged
to
when
you
had
to
actually
create
a
factory,
and
one
of
the
things
I
had
said
to
you
that
you
included
in
the
blog
post
was
that
it.
It
really
is
such
a
nice
blend
of
the
simplicity
of
logging
that
we
had
in
ef6,
but
takes
advantage
of
all
of
that.
All
of
that
great
logging
framework
and
capability
that.net
gives
us
so
and
and
that
it's
all
all
integrated.
A
Yep,
absolutely
so
so
you
can
have
like
you
can
put
filters
in
here
which,
which
you
can
write
yourself.
So
you
can
say
okay,
if
the
id
we.
A
A
A
A
Okay,
so
this
one,
so
I
have
to
do
the
minimum
level
first.
So
let
me
put
the
minimum
level
in
there
logger
level
information,
and
then
let's
do
this
isn't
going
so
well,
because
I
can't
find
the
right
do
I
have
to
do
a.
I
think
I
definitely.
A
A
A
Yes,
so
we
have
this
dblogger
category
class.
This
is
so
you
can
easily
find.
This
is
like
a
intellisense
easy
to
find
all
of
the
different
categories
we
have.
So,
for
example,
I
can
say:
okay,
let's
database
is
often
the
one
of
the
most
interesting,
so
we
could
say
we
could
do
logarithmic
database,
but
we
could
also
go
nested
into
that
and
say:
let's
have
just
things
associated
with
the
command,
and
then
you
have
to
give
this
a
name.
So
we
have
a
name
thing
on
the
end
of
it.
A
So
now
that's
going
to
basically,
I
think
that's
right
right
name!
Is
there?
Yes?
Okay?
So
if
I
run
this,
it's
now
logging
only
things
that
are
related
to
the
database
command.
So
you
can
see,
we've
got
command,
executed,
command,
created
data
reader
disposing,
but
it's
not
logging
any
of
the
other
events.
A
Likewise,
we
could
do,
for
example,
connection
name
and
run
that,
and
now
we
see
only
the
connect,
only
the
event
so
related
to
the
connection,
and
if
we
did
the
top
level
database
here,
then
we
get
events
associated
with
both
connections
and
commands.
Anything
that's
database.
So
this
is
kind
of
like
a
hierarchical
category.
You
know
separation
now
some
of
the
categories.
A
There's
you
overlap
between
where
things
could
go,
and
so
we've
they've
been
out
assigned
what
we
think
to
be
the
most
relevant
category,
but
it's
generally
pretty
easy
to
filter
what
you
want.
A
I
think
we
could
also
do
a.
We
have
this
class
called
core
log,
no
core
event
id.
A
Yeah,
all
of
the
events
that
that
ef
core
is
generating
from
the
core
assemblies.
Likewise
there's
a
relational
event
id
here,
which
are
all
of
the
the
events
that
that
are
not
common,
so
they
won't
be
there
if
using
cosmos,
but
if
using
a
relational
provider.
These
are
all
of
the
events
we
generate.
So
I
could
say,
for
example,
just
give
me
just
tell
me
this
event.
Where
the
connection's
closed.
That's
all
I
want
to
know.
A
We
can
go
to
relational
event.
Id
connection
opened
so
now
we're
going
to
get
opened
and
closed
events,
but
nothing
else
so
yeah
as
julius
mentioned.
So
we
have,
you
know
you:
can
you
can
write
your
own
filter,
but
you
can
also
just
very
quickly
come
in
here
and
say:
okay,
these
are
the
events
I
care
about.
Show
them
to
me
and
the
idea
of
this
is
you
don't
need
to
add
any
external
packages.
A
You
know
the
microsoft
extensions
logging
stuff
is
is
really
great
and
we
recommend
that
for
production
logging
you
know
it
integrates
with
ceralog
or
whatever
else
you
want
to
do.
It
works
integrates
perfectly
with
asb
net
core
or
your
host
apps,
but
if
you
just
want
to
get
some
logs
out
of
ef
core,
because
you're
debugging
or
because
something's
you
know
you
just
don't
understand,
what's
going
on
and
you
don't
want
to
add
packages
or
anything,
then
this
this
log
to
is
super
valuable.
For
that
anything
else,
we
should
show
julie.
B
Well,
just
to
mention
it
was
funny
after
I
had
done
all
of
this,
so
I'm
I'm
updating
my
pluralsight
core
to
this
and
after
I
had
done
this
in
a
console
app
right,
so
I
used
log2
in
the
db
context
on
configuring,
but
then
I
was
working
in
an
asp.net
core
app
and
just
out
of
habit.
You
know
just
because
I
was
using
it.
I
started
adding
log
two
on
to
the
end
of.
C
B
For
the
service-
and
I
was
like
what
wait-
no
right-
it's
already
built
in
there
so
yeah
you
take
all
of
those
same
filterings
and
just
put
them
in
you
know
your
app
settings
and
then
it
just
it
just
plugs
right.
Absolutely.
A
And
you
can,
of
course,
put
log2
in
at
db
context.
If
you,
you
know,
if
that's
what
you're
using
to
configure-
and
you
want
to
just
put
quick
logging
in
there
that
all
works,
so
one
of
the
things
that
that
sometimes
people
miss
is
that
anything
that
you
can
do
in
our
db
context.
You
can
do
it
on
configuring
and
vice
versa.
A
So
if
you
see
something
in
an
example
in
add
db
context,
that
doesn't
mean,
if
you're
not
using
adv
context
that
you
can't
use
it
and
the
other
thing
that's
actually.
I
think
I
mentioned
this
in
in
the
new
documentation
you
might,
you
might
be
doing
your
provider
stuff
in
ad
db
context.
You
could
still
have
this.
A
You
can
still
have
an
on
configuring
method
and
because
this
gets
called
regardless
of
whether
you
use
our
db
context
or
not
on
configuring
is
always
called
so
you
can
just
add
it
in
there,
like
you,
don't
have
logging
in
your
application,
even
if
you're
in
that
bd
context,
you
could
have
this.
You
know
comment
it
out
and
then
uncomment
that
for
when
you're
immediately
wanting
to
do
wanting
to
do
logging,
you
don't
have
to
change
your
adv
context
at
all,
so
anybody
else
want
to
chime
in
on
log2
anything
else.
L
J
A
A
Let
me
tell
you,
let
me
tell
you
a
little
story
about
that
that
some
of
you
may
remember
so
you
know
when
we,
when
we
did
code
first
and
db
context,
so
af
core
4-1
was
the
first
time
that
was
released.
We
we
started
using
this
db,
naming
convention
for
the
ef
classes
to
align
with
db
connection
and
things
like
that
and
to
to
separate
them
from
other
similar
concepts
that
were
already
in
the
object
context.
You
know
api,
and
so
we
had
this
rule
put
db
in
front
and
everything.
A
But
then
we
have
this
class,
that's
called
database.
So
now
do
we
put
db
database
or
do
we
put
just
database
and
I
think
originally
correct
me
from
wrong
guys.
I
think
originally
we
put
it
out
there
as
db
database,
because
that
was
consistent
and
it
matched
the
rules
and
everyone
was
like
what
db
database
is
ridiculous.
A
B
Not
about
log2,
but
you
probably
als
you
saw
danny
simmons-
is
here
from
the
original
team
and
I
was
trying
to
show
him
the
shirt
that
I'm
wearing.
He
made
these
shirts
when
we
when
ef4
came
out,
because
ef4
went
from
two
directly
to
four
no
yeah
version.
B
A
A
That's
that's
good,
I
think
danny
told
me
he
has
his
like
framed
and
upon
the
wall.
So
that's
pretty
cool
one
more
thing
I'll
mention
before
we
move
on
which
I
think
is
people
don't
necessarily
know
about,
and
that's
these
enable
sensitive
data
logging
and
enable
these
default
errors.
These
are
things
that
you
can
work
that
work
with
any
of
the
logging
mechanisms.
A
So
if
you're
using
microsoft,
extensions
log
in
with
asp.net
these
work
for
that
too,
and
what
they
do
is
let
me
let
me
change
this,
so
we
can
just
see
some
query
stuff,
so
I'm
just
gonna.
Do
the
log
level
information
again.
A
So
if
I
remove
these
two
and
run
this
code
again
and
then
we
look
at
what
the
output
has,
you
can
see
that,
even
though
we're
inserting
values,
the
parameters
have
this
question
mark
and
that's
because
we
don't
want
to
show
you
any
data,
that's
from
your
database
in
logs
or
exception
messages
by
default,
and
the
reason
for
that
is.
We
have
no
idea
what
it
is
and
we
have
to
assume
it
could
be
your
social
security
number
or
some
other
personal
information.
A
However,
it's
really
difficult
to
figure
out
what's
going
on
when
this
crashes
and
you're
like,
but
which
one
is
it
trying
to
insert
which
one
is
it
trying
to
relate,
because
you
don't
have
any
of
the
key
values
right
and
ef6
was
notoriously
difficult
about
that,
because
there
was
no
way
to
get
the
key
values
and
whenever
anybody
asked
we
were
like,
we
can't
put
them
in
because
it's
a
security
concern.
You
know
for
privacy
enable
sensitive
data
logging.
A
What
that
does
is
first,
first
of
all,
if
we
go
to
the
top
of
the
log
here,
it
spits
out
a
warning.
It
says:
you've
got
sensitive
data,
logging,
make
sure
you're
not
exposing
sensitive
data
and
you're
not
doing
this
in
production,
blah
blah
blah
and
then,
when
we
actually
look
at
these
now,
rather
than
just
having
question
marks,
we
have
the
values
of
all
the
parameters.
So
now
we
can
see
that
this
one
is
being
inserted
as
id1
and
that's
super
useful.
A
So
definitely,
if
you're,
trying
to
debug
stuff
know
to
switch
this
on,
I'm
not
going
to
demonstrate
the
enable
detailed
errors,
because
it's
a
it's
a
little
bit
more
difficult
to
set
it
up.
This
one
is
useful
if
you
have
a
null
value
or
a
null
exception
coming
out
when
you
materialize
queries,
so
this
often
is
useful.
For
example,
if
you've
marked
something
as
not
knowable
in
the
in
the
model,
but
then
there
happens
to
be
a
null
in
your
database
somewhere.
That
snuck
in
and
all
you
get
from,
ef
is
no
reconception.
A
It
blew
up,
and
you
don't
know
where
what
this,
what
enable
detail
errors
does?
Is
it
wraps
every
read
of
the
database
into
an
exception
into
a
try
catch
so
that
you
can
get
detailed
information
about
what
exactly
it
was
when
you're
doing
the
the
query
that
caused
the
the
error
that
has
some
perfect?
We
measured
the
perfect
back
in
the
2x
days.
We
don't
know
what
the
perfect
is
right.
A
Now
shy
is
going
to
re-measure
the
perfect,
and
if
we
can
make
this
do
a
pattern
which
allows
us
detailed
errors
without
taking
a
significant
hit.
We
might
make
this
on
by
default,
but
now
it's
off
by
default
and
if
you
get
those
weird,
no
graphics,
sections
out
of
queries,
switch
it
on
and
run
it
again.
You
might
get
something
a
lot
more
useful.
A
Okay
should
we
shall
we
move
on
or
anybody
want
to
add
anything
else?
A
Okay,
okay,
so
who's
going
next.
So
we
should
we
go
with
john
next
and
I
think
you've
actually
prepared
some
code
to
show
john.
So.
D
D
Yeah
I've
just
to
start
out.
I
did
want
to
say
julia
already
knows
this,
but
when
I
was
asked
to,
if
I
would
write
it
can
be
considered
to
write
the
book
I
said
has
have
you.
I
asked
julie,
yeah.
D
So
yeah,
so
I
was
thinking
back
to
when
I
first
used
ef
well
ef
yeah
and
it
was
back.
It
went
at
ef5.
D
B
D
She's
a
lecturer
in
maths
and
is
her
special
area
is
healthcare
healthcare
modeling,
particularly
in
developing
countries,
and.
D
Yeah,
so
we,
my
wife
and
I
did
a
big
job
for
south
africa
looking
at
where
to
place
laboratories
for
hiv
aids.
B
D
And
I
was
looking
for
something
I
I
was:
do
build
using
geography
in
sequel
and
if
you
may
remember
that
it's
ef
core
was
the
first
for
ef
iv.
Yes,
ef5
sorry
was
the
first
one
where
it
supported
spatial.
A
A
D
That's
where
I
started
so
kind
of
it
was
ef5
then,
and
it's
ef
core
five.
A
Now,
yes,
we
we
talked
about
whether
or
not
we
should
try
and
skip
version
numbers
or
anything.
You
know
because
of
confusion,
but
hunter
basically
said
no,
it's
five.
That's
it
also
yeah.
L
A
Yeah,
so
what
what's
your
so
what's
your
impression
of
the
spatial
support
in
ef
core
versus
that
that's
in
than
ef.
B
D
It
was
very
good,
but
it
didn't
pay
so,
but
but
it
got
my
skills
up
and
then
I
I
went
into
being
a
contract
programmer.
A
Right
right,
fair
enough
yeah
I
mean
I
I
definitely
this
spatial
is
interesting
because
it
was
it
was
challenging
for
for
us
in
in
in
when
we
came
to
ef
core,
because
the
the
support
in
entity
framework
is
very
tied
to
what
sql
server
supports.
The
types
are
very
tied
to
sql
server.
It's
also
very
much
integrated
into
the
framework,
and
we
wanted
to
do
something
for
spatial
that
would
both
use
a
community
library.
A
You
know
not
invent
another
spatial
library
and
that's
why
we,
you
know
bryce
and
other
people
did
a
lot
of
research
on
that
and
we
decided
to
do
to
use
nts
net
topology
seat
and-
and
I
think
that's
been
been
very
successful.
You
know-
and
it's
also
an
extension
package.
So
if
you're
not
using
spatial
type,
you
don't
have
the
overhead
of
that
so
and
and
we've
allowed
that
to
work
address
across
multiple
providers.
So
so
postgres
and
my
sequel
both
have
spatial
support
as
well
and
sql
light.
A
Has
spatial
support
so
bryce?
I
don't
know
if
you
want
to
talk
anything
anymore
about
that,
but
I
think
that
went
really
well.
C
Yeah
yeah,
I
think
we
learned
a
lot
of
lessons
from
the
ef5
apis
and
even
just
like
the
layering
for
the
providers.
I
think
oracle
was
the
only
other
one
that
actually
managed
to
support
spatial
on
f5,
whereas
now
yeah
we
have
postgres
sql,
lite,
mysql,
others.
I
know
so
yeah
they're
testament
to
like
lessons
learned
from
ef5
and
now
we're
bringing
those
ndf
core.
We
do
that
a
lot.
Absolutely
yes,.
J
Yeah
yeah,
I
remember
I
remember
that
thing,
but
I
mean
the
thing
I
also
love
about
this.
Is
it's
a
great
story
about
how
how
it's
now
really
cross
database
and
cross-platform?
So
it
really
does
work
on
all
databases.
It's
even
the
same
api
because
it
uses
the
same
topology
suite
package.
Everything
works
so
completely.
In
contrast
to
the
way
things
were,
and
I
actually
fiddled
with
postgres
spatial
support
back
for
ef6
or
ef5,
and
it
was
awful
and
not.
A
Yeah
excellent,
okay,
john,
so
I
think
you
you
wanted
to
talk
about
change,
tracker,
dot,
clear
so.
D
This
going
to
be
interesting
and
you're
going
to
say:
that's
so
detailed,
you
know,
but
and
there's
a
there's,
a
reason
behind
this,
because
I
was
not.
I
had
a
big
stay,
a
part
of
my
life
where
I
wasn't
programming
and
when
I
came
back
to
becoming
being
a
programmer,
I
had
to
learn
it
all
again
and
the
one
thing
that
I
just
loved
was
unit
testing,
because
I
I
understood
it
from
a
developer
point
of
view,
and
I
also
understood
it
as
a
management.
D
D
You
know
so
I
I
picked
up
unit
testing
a
lot
and
but
I
want
to
be
efficient
because
you
can
just
you
know
you
could
write
thousands
of
unit
tests.
I
know
you
have
in
ef
core,
but
you've
got
it
when
you're
working
for
a
client
you've
got
to
do.
Oh,
thank
you.
That's
my
book
at
the
bottom,
for
you
you've
got
to
get
the
right
balance
of
of
of
how
you
do
it.
D
So
anything
that
makes
me
able
to
write
unit
tests
quickly
and
accurately
is
is
what
I
want.
Yeah.
E
D
B
D
This
is
a
typical
unit
test
that
I
might
write,
so
I
I
love
using
sqlite
in
memory.
You
can't
use
it
for
everything,
but
it's
very
good.
So
in
this
thing
I'm
saying
I
I
set
up
a
a
context.
I
add
a
book
to
it.
This
is
to
test
things,
and
then
I
read
that
book
back
and
and
I'm
gonna
do
something
with
that
and
I'm
looking
at
the
reviews
now.
The
fact
is
that
I
didn't
put
an
include
in
here.
D
That's
the
bug,
but
because
I
I
could
get
really
technical
in
here
that,
but
what
happens
is
when
you
add
a
a
book
into
the
context
when
you
read
it
back,
it's
going
to
try
and
use
it
it.
It
tries
to
use
that
it
doesn't
do
it
for
performance,
it
does
it
because
it
doesn't
want
another
instance
of
this
of
the
the
book
that.
D
Only
one
instance-
and
I
think
you
call
that
identity
resolution
resolution
yeah,
so
so
this
what
what
would
happen
if
I
run
this,
I
can
run
it.
I
haven't
got
an.
I
haven't,
got
a
include
of
the
reviews,
but
it
says:
there's
two
reviews
and
that's
because
go
back
to
this.
It's
picked
up
what
I
did
here
when
I
put
it
into
the
database.
D
D
Yeah,
but
if
we
go
on
to
this,
this
lovely
change
tracker
here,
what
will
that
do
that?
What
that
does?
Is
it
blows
away
all
the
tracked
entities
right
so
that
when
I
do
it
again,
I
get
the
right
answer
right
and
that
there's
nothing
there.
D
A
Essentially,
then,
the
the
the
context
is
designed
to
be
used
as
a
single
unit
of
work
and
what
you're
really
doing
is
say,
I'm
actually
kind
of
abusing
that
a
little
bit
my
test
to
say:
okay,
I'm
going
to
use
the
same
context,
I'm
going
to
do
one
unit
of
work,
but
then,
instead
of
creating
another
one,
because
it's
a
test-
and
I
just
want
it
to
be
as
simple
and
short
as
possible-
I'm
going
to
clear
the
context
and
then
that
effectively
makes
it
like.
A
D
Yeah
and
and
look
you
want
to
write
if
you're
going
to
write
a
lot
of
unit
tests,
you
want
to
write
them
really
quickly
right,
you
don't
want
to
mess
about,
and
that's
why
I
love
that
and
then
just
to
make
sure
you've
got
the
real
one.
This
would
work
because
it
has
the
include
and
do
you
know
I
have.
I
have
got
this
wrong
on
client
systems.
You
know
I've.
I've
forgotten
to
do
something
to
clear
out
the
thing
yeah.
B
A
A
A
The
one
with
change
tracker
clear
in
it,
the
one
that
you
showed
us
yes,
so
so
put
a
break
point.
You
know.
Basically,
let's
see
after
you
do
the
add
book
with
two
reviews
due
date
actually
put
it
before
that
boot.
So
as
as
soon
as
we've
done
the
context
database
insure
created,
let's
put
a
breakpoint
there.
D
A
Okay,
so
when
it
stops
on
that
break
point
go
into
your
you
know:
locals
window
there
yeah
and
find
the
context
and
then.
D
A
That's
okay,
go
into
change
tracker,
so
expand
change,
tracker
out
there
and
then
expand
out
debug
view,
so
we've
gone
context,
change,
tracker,
debug
view
and
then
there's
a
short
view.
No
longer.
Let's
look
at
the
they're,
both
empty
at
the
moment,
so
open
up,
so
we
can
see
right
now.
We
don't
need
to
open
up
in
the
magnifying
glass,
but
we
can
see
right
now
that
both
the
contacts
is
not
tracking
anything.
The
debo
views
are
empty.
A
Now
do
a
step
over,
so
we
so
we
do
that
next
line
of
your
code.
A
A
A
A
A
To
be
fair,
I
I
just
come
through
this
on
john,
without
any
warning,
so
you
can
see
in
there
that
this
is
the
debug
view
of
the
state
manager.
So
this
is
telling
you
that
you've
you're
tracking
an
author
entity,
it's
got
an
id
one
and
it's
currently
in
the
unchanged
state
a
book
with
id
one,
and
then
these
are
the
property
values.
D
A
And
so
this
is
a
this
is
a
really
good
way
of
letting
you
know
what's
in
the
state
of
your
state
manager.
So
you
know
if
you're,
finding
tru,
if
you're
having
trouble,
because
it's
like,
why
is
that
relationship
being
nulled
out?
What's
happening
to
that
foreign
key?
This
is
a
great
way
to
view
it
if
you,
if
you
close
out
or
just
switch
back
to
the
debugger
here
and
there's,
also,
then
the
the
short
view.
So
if
you
do
the
same
thing
with
the
short
view.
A
So
the
short
view
is
similar,
but
this
basically
just
tells
you
about
relationships,
so
it's
missing
all
the
actual
property
values
and
stuff
out.
But
it's
telling
you
you
know
you
can
see
the
book
author
and
it
has
that
foreign
key
value
there
saying
it's.
You
know
what
it's
related
to
the
foreign
key
is
related
to
book
id
one.
So
that's
a
that's,
and
if
we
go
back
to
the
debugger
and
go
to
the
next
line.
A
Then
we
can
demonstrate
that
clear
really
does
work.
A
Right
and
now,
if
we
look
back
in
the
debug
view,
you
can
see
now
it's
populated
that
context
again.
All
of
this
is
now
tracking,
and
you
can
see
there
that
your
only
you
know
maybe
expand
the
short
view
out
there.
A
So
you
can
see
that
you're
only
tracking
one
entity
so
because
you've
missed
your
include,
you
can
see-
oh
I'm
not
bringing
in
the
other
one.
So
your
test,
obviously
in
this
case,
would
have
caught
it
because
you've
got
the
clear.
But
it's
an
easy
way
again
of
of
saying.
Oh
I've
seen
that
I've
stepped
over
the
code
and
now
in
the
debugger
I
can
see
what's
actually
happening
in
the
state
manager,
and
I
think
this
is.
A
E
B
First
of
all,
I
want
to
say
I
love
clear
for
building
demos
like
if
I'm
like
in
my
my
courses
right
I'll,
have
a
method
and
I'll
say,
and
if
we
did
this
and
then
we
did
that
and
we're
doing
disconnected
and
I'll
use
clear
in
between
to
kind
of
emulate,
disconnected
in
you
know,
a
console
method
and
I'm
always
very
clear
about
the
fact
that
you
know
I'm
doing
this,
because
this
is
just
you
know,
testing.
C
B
Other
than
the
fact
that
you
know
I
I
think
for
for
production,
you
know
no,
you
don't
want
to
use
that
right.
You've
got
the
unit
of
work
and
everything,
but
was.
Is
there
any
other
reason
arthur
that
you
know
you're
like
here's
this
tool,
but
I
don't
really
want
you
to
so.
K
A
A
dangerous
philosophical,
principled
position,
rather
than
a
pragmatically
pragmatic
position.
I
I
think,
there's,
I
think,
there's
a
there's,
a
frustration
somewhere
on
the
ef
team,
sometimes
that
we
design
this
thing
to
be
a
unit
of
work
and
people
are
very
reluctant
to
use
it
as
a
unit
of
work,
not
everybody
lots
of
people.
You
know,
follow
that
guidance
and
are
very
successful
with
it,
and
so
you
know
we've
banged
on
about
it
over
and
over
again.
Even
then
the
docs
have
been
writing
updating
for
five
hours.
A
Like
you,
it's
a
unit
of
work,
you
know
short-lived,
throw
it
away.
So
you
know
it's
kind
of
like
putting
clear
in
there
it's
kind
of
like
saying,
yeah.
Okay,
we
get
that,
but
actually
it's
fine.
You
know
if
you
want
to
clear
the
cup,
the
the
change,
something
and
pragmatically.
I
admit
that
that
is
perfectly
fine
and
well.
B
A
Yes,
it
can
hide
that
perhaps
your
architecture
isn't
what
it
should
be
in
your
application
and
that's
kind
of
the
danger
of
it
that
people
will
just
say.
Oh
I'll
just
do
this
and
not
think
about
the
larger
kind
of
architectural
issues.
But
that
being
said,
I'm
generally
speaking
very
very
much
in
favor
of
pragmatic
things
that
you
know
make
your
life
easier,
and
so
you
know
we
added
the
feature,
so
you
know
use
it
but
understand
it
humidity.
B
D
So
there's
always
there
is
you
know
you
want
to
get
it
right.
It's
got
to
be
correct,
but
you
also
don't
want
to
what's
up
have
gold
plate
taps.
A
I
think
that's
fine
yeah,
I
would
still.
I
would
still
recommend
that
documenting
it.
You
just
do
it
with
two
context.
Instances,
I
think,
that's
you
know
less
less
trouble-prone
and
personally,
I
don't
think
it
takes
that
much
time
longer
to
do
that,
but
I
totally
take
your
point
that
you
know
your
customer.
You
know
your
clients
are
paying
for
your
time
when
you
want
to
you
want
to
give
value
without
adding
additional
overhead.
So
you
know.
B
I
D
A
Okay,
shall
we
shall
we
move
on
to
to
the
next
topic,
so
I
think,
should
we
do
many
to
many
next
or
should
we
leave
that
last?
Let's
leave
that
one
till
last
and
have
eric
talk
about
the
reverse
engineering.
B
F
Was
thinking
a
little
bit
about
what
it's
like
to
be
looking
at
the
what
you're
doing
from
the
outside
and
of
course,
github
is
now
not
only
a
place
to
store
your
source
control
is
also
almost
like
a
social
platform
social
media
in
by
way
of
the
discussion
that
happens
in
in
the
issues,
and
that
made
me
think
back
of
some
of
the
good,
the
bad
and
the
ugly
of
the
of
the
ef
core
issue.
Tracker.
F
No,
let's
see,
let's
see,
let's
see,
we
never
think
when
I
would
I
would.
I
will
start
with
with
the
oculus
one
first,
then,
let's
get
that
over
with
and
we
had
a
somebody
wanted,
a
provider
for
obscure
database.
F
F
Pretty
yeah
ugly,
yes
and
and
that
that,
of
course,
is
it's
a
social
platform.
So
good
things
can
happen,
people
can
bring
good
feedback.
There
can
be
a
lot
of
noise
on
a
social
platform,
but
but
that
that
was
a
kind
of
a
sad
moment
in
the
in
the
issue:
tracker
history
of
ef.
Let
me
put
it
like
that.
F
Then
then,
one
of
the
things
one
of
the
ones
that
stuck
with
me
as
being
a
little
bit
bad,
not
because
of
what
you
had
done
was
somebody
wrote,
occasionally
ef
core
loads,
my
entire
entire.
F
F
That's
unbelievable:
how
on
earth
could
that
happen?
Somebody
reported
it
and
I
I
think
it
was
like
you.
He
couldn't
really
come
up
with
a
reproduction
and
it
only
happened
under
some
special
circumstances
and
when
it
happened,
everything
of
course
went
ballistic
because
he
was
loading
everything
in
his
database
with
millions
of
rows,
but
he
couldn't
really
produce
a
ripro.
So
so
the
case
was
closed.
F
But
then
he
came
back
like
half
a
year
later,
oh,
he
had
figured
out
what
it
was
yeah.
He
was
using
some
blocking
system
and
I'm
not
naming
anybody
here
that
that
kind
of
traversed
the
exception
and
when
it
came
to
the
to
the
db
sets
it
was
calling
to
list
on
on
all
the
db
sets
it
causing
ef
to
load
the
entire
database.
F
So
so
that
was
an
interesting,
slash,
bad
thing,
but
it
had
a.
F
A
A
Bryce
probably
remembers,
this
too
is
back.
It
was
in
the
ef6,
I
think,
and
it
was
the
package
manager
tools.
I
believe,
and
somebody
said
look
when
I
run
this
tool.
It
copies
my
entire
project
and
duplicates
it
into
a
different
directory
and
we're
like
that.
It
can't
be
possible
that
you
do,
you
know,
update
database
or
whatever
it
was,
and
it
copies
your
entire
project
and
I
sure
enough
it
did
and
I'm
like
right.
It's
actually
doing
that.
You
remember
that
price.
A
C
drive
or
something
it
was
weird
and
it
turned
out.
We
were
making
some
call
into
the
visual
studio
api
and
it
was
like,
if
you
made
that
on
a
directory
or
something,
then
it
resulted
in
it
duplicating
that
directory
when
in
fact
we
were
just
trying
to
copy
a
file
or
something
like
that.
I
can't
remember
the
full
details,
but
it
was
definitely
a
case
where
the
first
impression
was
there's
no
way.
There's
no
way,
that's
true
yeah,
but
it
was.
F
F
And,
of
course,
that's
just
the
the
whole
topic
seem
completely
impossible.
You
can't
do
that
in
sqlite.
Luckily,
sqlite
has
evolved
over
since
for
those
six
years,
and
lo
and
behold,
sqlite
rebuilds
have
been
completed
in
2020,
so
that
was
actually
one
of
the
good
good
ones.
Yes,
and
so
we've.
B
A
I
think
one
of
the
one
of
the
challenges
we
have
on
the
ef
team
is
that
you
know
we're
a
small
team,
there's
me
and
jeremy
and
then
five
engineers,
and
that
that's
it
you
know,
and
and
we
we
do
all
this
stuff
and
there's
so
many
different
things
that
people
want.
You
know
everybody
comes
and
says.
Why
haven't
you
done
this?
This
is
clearly
the
most
important
thing,
and
yet
you
know
you
say:
oh
well,
actually
it's
got
29
votes
and
that
and
then
places
it.
A
You
know
even
like
number
37
on
the
list
of
the
most
posted.
You
know,
regardless
of
any
other
considerations.
So
it's
it's
very
difficult.
It's
very
difficult
for
us
to
you
know,
do
everything
when
everybody
wants
it,
but
I
will
say
that
I
think
3-1
was
a
really
good.
We
got
to
a
really
good
foundation
there
and
the
number
of
things
that
this
team
has
delivered
and
the
community
have
delivered
in
5.0
has
been
has
been
really
impressive.
This
is
a
this
is
definitely
the
best
team.
I've
worked
on
in
my
career.
F
You
guys
for
all
your
work,
no
and
then
when
I,
when
I
see
that
when
I
see
the
way
that
you're
handling
various
ways
of
expressing
a
need
for
something
coming
from
the
outside,
I
think
you
handle
it
in
an
extremely
admirably
way,
kudos
to
the
entire
team
for
for
doing
it
the
way
the
way
you're
doing
it,
also
because
you
have
been
working
in
open
source
for
so
many
years.
So
you
have
a
lot
of
experience
that
some
that
we
may
not
see
with
some
of
the
other
microsoft
teams.
A
C
A
And
you
know
previously
it
was
kind
of
like
yes,
we
want
that.
But
there
are
customers
too,
and
so
you
know,
if
they're
kind
of
mean
and
shout
and
say
rude
things
to
us,
then
maybe
that's
okay,
because
they're
customers
and
I
think
we
don't
think
that's
that's
not
the
case
anymore.
It's
like
if
you're,
going
to
come
and
and
participate
in
our
forums
where
we
want
to
engage
with
you.
We
want
the
community
to
be
to
be
involved
in
everything.
It's
got
to
be
a
very
open,
engaging
polite.
A
You
know,
whatever
you
say,
we're
going
to
try
and
help
you,
even
if
helping
you
is
to
say
you're
doing
this.
You're
posting
this
in
the
wrong
place
and
you
should
go
over
there
and
post
it.
That's
still,
you
know
something
we
can
do
and
we
have
to
drive
that
by
by
example,
from
the
microsoft
side,
like
microsoft,
people
need
to
be
setting
that
example
and-
and
I
think
we
we
we
try
really
hard
to
do
that
on
on
the
eft.
A
D
Can
I
say
your
your
weekly
email
that
you
send
out
arthur
is
just
you
know.
I
mean
it's
it's
lifeblood
to
me
because
you're
telling
me
you
know,
what's
in
what's
up.
D
Yeah
it
it's
that
level
of
communication
is
just
great.
A
That's
also
interesting
from
an
internal
microsoft
perspective
as
well,
because
the
way
that
came
about
is
that
I
was
in
a
meeting
with
other
leads
of
asp.net,
like
I
remember
damien
was
there
damian,
edwards
and,
and
he
said
something
like,
but
it's
hard
for
me
to
know.
What's
going
on
in
af
and
I'm
like
well,
should
I
send
out
an
email
every
week
that
just
lets
you
know
what's
going
on
and
he's
like
yeah?
That
would
be.
A
That
would
be
great
like
if
we
had
that
it
would
be
much
easier,
and
I
went
away
from
that
meeting
and
thought.
Why
would
I
send
this
just
to
people
internal
at
microsoft
like
if
I'm
going
to
write
this,
then
everybody
should
be
able
to
see
this
because
we're
developing
in
the
open,
like
you
know,
it's
not
like
there's
stuff
to
hide
or
anything
like
that,
and
so
that's
how
I
ended
up
putting
that
out
to
to
everybody
and
I've
had
similar
feedback
from
people.
A
Saying
that
you
know
it's
it's
very
useful,
so
you
know
I
appreciate
that,
but
I
think
it's
again
a
place
where,
as
as
microsoft,
we're
really
living
this,
let's
develop
this
in
the
open,
let's
communicate
as
much
openly
as
we
possibly
can
and
and
that
that's
exciting
to
me.
That's
that's!
That's
something
that
when
I
joined
microsoft
I
didn't
think
we
get
to
where
we
are
now
in
open
source
and
community
and
cross-platform
and
all
that
stuff.
And
it's
it's
cool.
It's
real!
It's
really
is
cool.
A
A
Yes,
so
should
we
should
we
get,
should
we
do
some
reverse
engineering
yeah?
Let's
do
that
all
right
so.
F
Hope
you
have
some
demos
ready,
because
I
don't
yeah
I
have.
I
have
fantastic.
Yes,
yes,
so
the
the
features
that
I
I
favorited
are
actually
features.
Excuse
me
for
saying
so
that
I
had
already
included
in
ef
core
power
tools
previously
to
ef
core
file,
but
it's
delightful
to
see
that
they
are
now
also
available
to
command
line
users.
A
Yes,
so
so
what
I
have
here
is
a
basically
I've
created
a
database
in
before
before
we
started
it's
in
the
back
end,
I'm
using
user
secrets
and
I'm
using
an
asp.net
application
in
this
case,
just
because
it
sets
up
all
the
options
and
everything,
and
then
you
can
use
this,
put
your
your
connection,
string
and
use
the
secrets
if
you're
local
and
then
I'm
using
this
name,
equals
syntax
in
there,
so
that
you
guys
can't
see
the
connection
string
to
my
local
fever,
sql
server
instance.
A
So
let
me
let
me
let
me
start
off
by
by
running
this.
This
is
just
the
default
command
and
and
we'll,
hopefully,
it
will
work
and
we'll
see
we'll
get
some
entities
created.
So
this
is
where
I'm
not
entirely
sure
about
how
to
do
the
the
to
view
the
files
when
I'm
in
this
presentation
mode
so
try.
A
J
B
A
So
we've
what
we've,
what
we've
got
generated?
We've
got.
This
is
just
the
default,
so
we've
got
blog,
it's
got
posts,
we've
generated
a
blog
context.
It's
got
this
name
equals
in
the
connection
strings.
You
know
it's
automatically
done
that
for
us,
which
is
really
nice,
so
there's
nothing
exposed
here
and
we
have
a
post
okay.
So
that's
the
default.
A
Correct
yes,
so
one
of
the
things
that
I
can
do
now
right
is:
I
can
take
this
protected
on
configuring.
If
I
wanted
to,
I
could
remove
this
from
the
generated
class,
and
I
can
because
this
is
set
up
as
a
partial
class
c
right,
so
I
could
go
in
here
and
say:
okay,
public
partial
class
and
my
blog's
contents,
and
then
I
can
put
this
in
here
right,
bring
in
the
options
builder.
A
Okay.
So
now
it's
not
in
my
database
context,
because
I
I
I
put
it
in
here
in
my
partial
and
and
this
should
this
should
still.
If
I
run
this
actually,
I
don't
have
any
code
to
run.
Let's
assume
that
when
I
run
this,
this
still
works
the
same,
but
one
of
the
features
we
added
in
in
in
five
is
this
no
on
configuring?
So
normally,
if
I
let
me
do
it
without
no
unconfiguring
just
so
you
see
so,
hopefully
it
will
overwrite
things.
I
think
it
does.
A
Thanks
bryce
yeah,
so
now,
if
we
come
up
here
and
try
and
compile
it's
going
to
say
no,
no,
no,
it
says
basically
you've
got
two
of
these
things
right,
because
when
we,
when
we
re-scaffolded
it
it
put
it
back
into
added
it
back
in
here.
So
I
can
find
my
terminal.
A
A
Two
hyphens:
that's
why
I'm
using
the
long
thing?
No,
I'm
configuring
thanks
right
and
when
this
scaffolds
it
basically
says.
Okay,
I
see
you've.
Oh
bill
failed.
Yes,
so
I
could
what's
the
thing
to
skip
the
build
price.
A
A
So
in
this
case,
if
we
come
back
here
now,
we
have
no
error,
because
ef
core
has
has
not
included
that
no
one
configuring
so
that,
then
you
can
re-engineer
your
database
without
having
to
continually
go,
and
you
know
remove
or
change
your
own
configuring,
because
you
may
also
have
it.
For
example,
in
you,
may
have
an
adddb
context
call,
and
you
want
to
do
your
connection
string
in
there
and
there.
So
you
don't
want
them
configuring.
A
So
that's
one
of
the
things
we
added
eric.
What
are
the
things
yeah
sure.
A
Yep,
so
we've
done
pluralization
by
default,
so
we
have
the
blogs
dbset,
the
postdb
set,
which
is
really
nice
and
yeah.
The
other
thing
we
have
is
we
do
this
number
disable,
because
this
code
is
not
does
not.
It
assumes
that
you're
not
using
normal
reference
types
and
so
to
make
that
very
clear
with
where
scaffolding
is
able
in
fiverr.
F
Yeah
and
if
you
want
to
bring
back
the
the
previous
behavior
of
no
pluralization,
because
you
don't
want
to
change
your
entire
code
base,
because
you're
upgrading
to
an
existing
code
base
to
ef
core
five
sorry
is.
H
F
A
A
B
F
A
J
A
Okay,
yes,
anything
else
to
show,
I
think.
A
Yeah,
okay,
so
let's,
let's
move
on
to
many
too
many
diego!
So
welcome!
Do
you
want
to
share
something
from
history
or
something
that
you
remember
from
from
af.
G
In
this
work,
and
I'm
not
going
to
try
to
mention
all
of
them,
but
of
course
there
is
a
rowan,
there
is
a.
C
G
There
are
like
so
so
many
people,
and-
and
I
remember
there
was
this
guy-
that
we
found
answering
questions
in
the
forums
when
we
had
forums
to
talk
to
the
community,
and
that
was
the
main
way.
We
talk
to
the
community
and
answer
questions,
and
there
was
this
guy
that
was
answering
questions
with
death.
That
was
incredible
that
he
seemed
to
be
like
part
of
the
team.
B
G
Was
working
on
tests
at
some
point
but
after,
like
I
don't
know
a
year
or
two
that
he
was
working
with
us,
he
said:
okay,
I
know
this
other
guy.
That
is
also
amazing
and
I
work
with
him
and
I
would
like
to
get
him
to
interview
and-
and
he
introduced
us
to
bryce-
and
I
don't
know
it's
just
a
chain
of
people
that
that.
A
G
A
B
H
G
G
I
I
came
back
to
microsoft
after
after
a
few
months
of
being
out
after
the
year
and
I'm
working
on
azure
networking
now
on
the
software
defined
network
team
and
it's
a
fantastic
team
as
well.
So
I'm
learning
like
crazy.
Oh.
B
A
Yes,
so
two
things
at
the
thing
I
have
so
danny
was
danny,
danny
simmons
and
jeff
durst,
that
were
the
people
who
hired
me
and-
and
my
story
about
danny
that
that
I
always
remember,
is
that
I
interviewed
for
microsoft
and-
and
there
were
three
teams
that
were
interviewing
me,
one
of
which
was
was
ef
and
I
probably
would
have
picked
ef
anyway
to
be
honest,
but
on
the
the
night
after
the
interviews,
danny
called
me
at
home
and
was
like
anything
else
you
want
to
know.
A
You
know
I
really
wanted
to
come
work
here,
so
you
know
wanted
to
just
check
if
you
had
questions
and
how
you're
doing
and
everything
and
that
really
like
sealed
it.
For
me,
I'm,
like
you
know
if
he
cares
enough
to
call-
and
you
know
you
know,
ask
this
thing
pretty
you
know
proactively,
then
I'm
just
going
to
go
work
on
on
ef,
and
I
think
that
was
definitely
the
right
choice.
A
So
I'm
very
thankful
for
danny
for
giving
me
the
opportunity
and
and
jeff
who
I
learned
an
awful
lot
as
being
my
first
like
manager
on
many
to
many
diego.
So
I
remember
talking
to
you
about
this
design.
Basically,
for
many
too
many
before
we
even
started
on
what
became
ef
core,
you
remember
that.
A
Yeah
so
so
I
don't
know,
I
don't
you
know,
it's
really
hard
to
remember
whose
ideas
things
actually
are,
especially
when
you're
such
a
interactive
team
and
you
collaborate
so
much
on
stuff.
I'm
pretty
sure
it
was
jay's
idea,
but
maybe
it
wasn't,
but
the
idea
you
know
we
had
it.
We
have
many
too
many
in
ef6
and
it
was
worked
right,
but
it
was
kind
of
like
a
bolted
on
external
pieces.
A
So
certainly
after
we
did
foreign
key
associations,
it
became
that
way
because
it
was
based
very
much
on
independent
associations
in
the
entity
data
model,
and
that
made
it
very
much
an
outlier
with
the
rest
of
the
way.
Other
relationship
worked
and
also
it
was
very,
very
limited.
It
was
like
you've
got,
you
could
have
a
many.
You
know
many
many
table
with
with
with
keys
in
a
joint
table,
but
he
couldn't
have
any
payload
on
it.
You
really
couldn't
change
the
map
and
you
couldn't
query
it
directly.
A
You
know,
and
so
diego
is
basically
like
well.
We
should
just
have
two
things
that
many
to
many
entity
in
shadow
state
and
that
actually
ultimately
turned
into
being
a
shared
type
entity
type,
which
was
a
nice
two
ideas
coming
together
nicely
there,
and
then
we
have
skip
navigations
over
that.
So
basically
it's
just
like
any
other
relationship,
but
you
can
view
it
as
many
to
many,
and
that
was
like
brilliant
idea
and
that
you
know,
and
since
we
started
af
core,
that's
how
we
wanted
to
do
many
to
many.
A
We
didn't
want
to
just
go
in
from
the
beginning
bolt
on
something
like
ef6.
So,
even
though
there
was
all
those
people
saying
many
too
many,
many
too
many
we
needed
to
get
to
a
point
where
we
could
do
it
the
right
way
in
a
way
that
was
extensible
not
just
completely
magic,
and
I
I
I'm
very
proud
that
I
think
you
know
we
managed
to
do
that
and
deliver
that
diego.
G
G
G
B
G
B
G
So
I
I
congratulate
you,
for
I
congratulate
the
team
for
implementing
many
too
many,
because
I
I
probably
had
the
idea,
but
I'm
not
100
sure
it
was
originally
yeah,
but
it's
fantastic
that
it
works.
Also,
it's
not
yes.
It's
that
easy.
A
So
we
we
haven't
got
that
much
time
left
and
we've
we've
seen
many
too
many.
There's
lots
of
good
information
out
there
on
many
to
many
there's
a
community
stand
up
that
that
we
did
a
few
weeks
ago,
where
I
did
a
deep
dive
into
it
and
that's
like
if
you
want
to
learn
about
many
too
many
go
see
that
you.
A
It
shows
how,
as
diego
said,
it's
composed
from
index
indexer
properties
and
from
property
bag
entity
types
which
are
also
themselves
compositions
for
for
on
shared
type
entity
types,
and
I'm
saying
all
these
words
are
thrown
out
there.
But
you
want
to
know
what
they
are
go.
Look
them
go,
look
at
that,
but
I
don't
want
to.
I
don't
want
to
go
without
showing
any
code.
So,
let's,
let's
switch
and
just
show
the
the
the
simple
example
of
many
to
many.
A
So
here
again
I
have
just
setting
up
something
with
big
tags
and
posts.
So
I
have
a
model
here
with
posts
and
tags
and
all
you
need
to
do
to
make
this
a
many
to
many
in
in
ef.
Core5
is
put
a
collection
of
on
posts
that
punish
the
tags
and
a
collection
on
tag
that
points
to
posts
and
that's
it.
You
don't
actually
need
any
there's,
no
additional
configuration
and
all
model
creating
or
anything
like
that.
A
Anything
like
that,
and
then
I
can
add
to
them
in
just
the
normal
way.
I
would
so
I
can
create
a
new
post
and
I
can
just
put
different
tags
on
each
post.
So
if
I
run
this.
A
You
can
see
that
we
indeed
get
table
automatically
created
for
the
many-to-many,
if
I
can
find
it
so
we're
creating
the
blogs
table
like
we're
in
the
inserts
already.
I
need
to
go
further
up,
create
the
database
right.
That's
where
we
create
the
database
now
we're
creating
table
for
blogs,
we're
creating
a
table
for
posts
and
we
are
creating
a
table
for
the
join
table.
Right.
I
don't
see
it.
A
It
must
be
there
right,
I'm
just
missing
it
in
my
in
my
scrolling,
because
otherwise
this
wouldn't
work
at
all.
A
So
I
want
to
show
one
more
thing
about
this
many
to
many
just
really
quickly
and
it
illustrates
another
thing
we
added
in
ef
core
five
another
debug
view
in,
in
fact,
and
that's
basically,
I
want
to
look
at
what
the
model
is
for
this
under
the
cover,
so
I'm
going
to
set
a
breakpoint
there
and
I'm
going
to
run
in
the
debugger
here
and
then
I'm
going
to
expand
out
my
context
and
remember
we
look
to
change
tracker
debug
view
here
and
there's
also
model
debug
view,
so
you
go
model
deeper
view
and
it
has
a
long
view
and
short
view.
A
The
long
view
is
pretty
hard
to
read
because
it
has
all
of
the
annotations
in
there.
The
short
view
is
easier
to
read,
although
I
think
that's
a
bug
in
the
rider
presentation
mode
there.
So
let
me
let
me
quick,
wait
to
sublime
and
put
it
on
there.
There
we
go
okay.
So
what
you
can
see
here
is
this
is
the
this.
Is
the
entity
type
that
we
had
originally
the
post,
and
this
is
the
entertainment
we
had
and
then
this
is
the
the
skip
navigations
this
good.
A
This
is
the
navigation
we
added
from
poster
tags,
and
likewise
it
has
an
inverse
here
for
going
back
the
other
way.
Then
this
is
what
ef
created
as
the
join
entity
type.
This
is
the
thing
that
maps
to
the
join
table,
so
you
can
see
it's
actually
a
dictionary
of
string
to
object
because
it's
I
said,
a
shared
type
entity
type
and
we've
created
automatically
the
the
foreign
keys
for
this
that
point
to
either
side
of
the
relationship
they're
named
after
the
navigation,
so
this
is
post
id
rather
than
post
id.
A
There's
good
reason
for
that,
because
if
you
have
multiple
relationships
then
the
naming
becomes
very
ambiguous.
However,
you
can
configure
this
and
change
this
to
be
whatever
id
properties
you
want,
and
then
it's
got
the
the
it's
using
these
indexer
properties
in
the
dictionary
as
the
foreign
key,
so
probably
a
lot
there.
A
That
makes
absolutely
no
sense
to
most
people,
but
if
you
want
to
find
out
more
about
this,
go
look
at
the
deep
drive
or
find
some
of
one
of
the
other
sessions
on
on
many
too
many
that
go
into
this
in
more
detail.
I
A
It's
probably
alphabetically
would
be
my
guess.
So
it's
interesting
like
that.
We
don't
do
things
alphabetically,
because
we
like
things
alphabetically,
we
do
them
alphabetically,
because
it's
it
creates
a
consistent,
stable
ordering
in
the
metadata
and
we've.
This
is
one
of
the
things
we
found
with
the
old
af.
A
Is
that
if
you
just
have
things
in
a
arbitrary
order-
and
then
you
add
another
say
you
know,
you
add
another
type
to
it
and
that
order
changes
and
in
the
metadata
things
can
become
easily
ambiguous
as
to
what
they
mean
and
that
caused
us
a
bunch
of
books.
So
now
we
try
to
make
a
consistent
ordering
of
everything
metadata
and
that
also
helps
when
you're
diffing
things
and
stuff
like
that.
So
I
suspect
it's
alphabetical.
D
Arthur,
I
don't
know
whether
it's
useful,
but
I
in
the
book
I
had
to
come
up
with
an
example
of
how
how
to
use
property
bags.
Oh.
B
D
A
A
A
Yes,
so
the
idea-
the
idea
here,
obviously
or
maybe
not,
obviously,
I
shouldn't
say
that
the
idea
of
the
property
bag
entity
types
is
that
dictionary
string
to
object
is
not
something
that
you
have
defined
in
your
application
right.
It's
just
something
that
comes
from
the
base
class
library
from
the
bcl,
and
so
you
can
use
that
to
represent
any
entity
type
in
your
model
like
you,
don't
have
to
have
defined
a
post,
clr
type
to
represent
a
post
and
a
blog
clr
type,
perhaps
in
the
post.
A
So
I'm
not
going
to
claim
that
this
is
a
fully
dynamic.
You
know
system
that
ef
has
here
because
it
still
requires
requires
the
model
to
be
defined,
but
it
allows
you
to
be
dynamic
in
a
way
that
you
don't
need
to
define
cor
types
in
order
to
do
that,
which
can
be,
which
is
obviously
why
it's
useful
for
us
in
many
to
many,
because
there
is
no
clr
type
defined
in
the
application
for
this
joint
table.
So
we
want.
We
need
to
use
something
else.
A
And
I
want
us
to
get
to
cake,
so
you
know,
I
think,
maybe
we
should.
We
should
do
that
now.
What
do
people
think.
L
A
A
For
those
of
you
of
a
british
persuasion
with
a
certain
amount
of
gray
hair,
this
could
be
our
live
tv
elephant
pooping
on
the
floor
moment
from
blue
peter.
So
if
anybody
gets
that
reference,
congratulations,
what
I'm
saying
here
is
things
could
go
wrong
because
we
are
now
going
to
test
out
a
super
new
microsoft
technology
that
I
don't
think
anybody
has
seen
before.
In
fact,
we're
not
technically
allowed
to
use
this,
don't
tell
anybody
if
you're
watching
this,
that
we
did
this.
A
But
what
we
have
is
what
looks
like
here:
real
cupcakes
right.
They
look
real
real
cupcakes,
but
they're,
not
real
cupcakes
they're.
Actually,
this
is
augmented
reality
right
and
it's
super
super
fancy,
augmented
reality,
because
I
can
take
one
of
these
and
let
me
let
me
julia:
are
you
ready
for
your
for
your
ef
core5
celebratory
cupcake?
Yes,
okay,
so
samson
these?
If
it
works,
will
will
transfer
over
the
internet
to
julie
and
transform
into
something.
A
Okay,
so
so
I
have
I
have,
let
me
let
me
do
the
guess.
First,
so
john,
since
you're
on
my
screen,
here's
a
here's,
your
cupcake,
okay,.
A
Got
it
wow
worked
again,
this
is
this
is
good.
I
thought
it
would
be
crashing
blue
screen
by
now.
There
you
go
cupcake
for
you.
G
A
And
eric
here's
yours,
whoa
whoa,
this
is
going
really
well
and
now
I
I
have
two
left,
although
I
might
actually
be
able
to
find
another
one
down
here
that
wouldn't
all
fit
on
the
plate.
So
jeremy.
A
I
A
J
Big
surprise,
this
became
something
else
because
I
was
coding
and
I
I
messed
up
the
whole
transfer
thing.
So
I'm
very
sorry
about
that.
I
was
hoping
you'd
run
out
of
cupcakes
before
you
reach
me.
So.
A
A
Technology
so
yeah,
so
I
think
that's
it!
Thank
you,
everybody
for
joining
us.
It's
been
a
lot
of
fun.
Talking
to
you,
there's
loads
of
information
out
there
on
on
ef
core5,
for
where
you
could
go
to
go,
find
file
your
bugs.
A
Let
us
know
what
doesn't
work
and
and
we'll
we'll
be
back
in
the
in
in
a
couple
of
weeks
with
with
another
one
of
these,
I
think
not
not
quite
the
same,
we're
not
sure
what
we're
gonna
do
yet,
but
we'll
cover
some
great
ef
core
stuff,
so
bye
everyone.
Thank
you.