►
Description
In this episode we welcome guest Frans Bouma, who will show us how to graphically model a domain for any .NET ORM with the LLBLGen Pro designer. Frans is also a venerable .NET data and SqlServer figure, so we will chat a lot about history and what's it's been like to make a commercial ORM in the Microsoft world.
Featuring: Shay Rojansky (@shayrojansky), Frans Bouma (@FransBouma)
#efcore #dotnet #data
A
A
A
Yeah
hi
everybody,
hello,
everybody
and
welcome
to
the
ef
community,
stand
up
for
those
of
you
who
are
just
joining
us
and
are
new.
This
is
something
that
we
do
every
two
weeks
where
we
basically
discuss
things
that
are
related
to
dot
net
data,
we're
officially
the
ef
core
team,
but
the
entity
framework
team,
but
we
also
discuss
other
things
in
the
data
universe
of
microsoft,
for
example.
Today
we're
not
going
to
be
talking
about
any
framework,
so
much
just
a
quick
round
of
introduction,
so
my
name
is
shai.
A
I'm
an
engineer
on
the
team.
I
work
a
lot
on
postgres
stuff,
I'm
kind
of
specialized
in
performance
and
lower
level
kind
of
data
access
stuff,
like
system
data
arthur.
C
A
Yeah,
I'm
personally
very
excited
about
today,
because
I've
wanted
to
have
friends
for
a
long
time,
francis
a
pretty
big
figure.
Let's
say:
in.net
data
he's
been
around
a
lot
knows
so
many
things
and
I've
learned
a
lot
from
him.
So
I'm
pretty
excited
about
it,
but
I
think
first
I'll
hand
it
over
to
arthur
for
a
quick
what
we
call
the
state
of
the
unicorn.
B
Indeed,
so
let
me
press
I'm
pressing
the
buttons
today,
which
is
scary,
so
yeah
state
of
unicorn.
So
there's
really
not
much
to
say
in
this
this
week.
We,
if
you
don't
know
ef
core50,
is
out
now
it's
on
you
get.
B
We
have
about
410
000
you
get
downloads
already,
which
is
which
is
pretty
impressive.
Let
me
clarify
that
doesn't
mean
410
000
developers
are
using
ef
core5,
because
this
is
new
get
restores,
which
happens.
You
know
in
a
variety
of
times,
but
it's
a
it's
a
good
public
number
that
we
can
show
that
shows
adoption
you
know
and,
and
it
correlates
to
us,
seeing
high
adoption
internally
as
well
so
get
on
that
we're.
Currently,
the
window
is
pretty
much
closed
for
five
zero.
B
One
bucks
now
they'll
be
coming
out
at
the
beginning
of
december,
but
if
you
find
issues
we're
still
fixing
them
for
five
zero,
two
so
give
it
a
try.
Let
us
know
what
you
find,
and
hopefully
you
enjoy
it
currently.
Basically
we're
planning,
ef6
and
writing
docs
for
ef
core5.
So
I
said
ef6.
This
is
going
to
be
so
confusing.
B
I
know,
and
we
will
have
a
a
a
plan
that
people
can
look
at
and
give
us
feedback
on.
I
I
definitely
hope
to
get
that
out
there
by
the
end
of
the
year,
and
we
definitely
want
your
feedback
for
for
what
we
decide
in
af6
and
we're
also
working
on
some
internal
quality
stuff,
adding
additional
task
coverage,
updating
our
build
system,
we're
currently
annotating
the
whole
code
base
for
normal
reference
types.
B
So
that's
been
an
interesting
thing
on
the
team
and
a
learning
experience
for
for
all
of
us,
but
it's
been
quite
fun
and
just
to
remind
you
that
we
have
weekly
updates.
If
you
go
to.
Hopefully
this
will
work
and
it'll
bring
the
right
thing
up
yeah.
So,
if
you
go
to
this
is
just
our
af
github
repo.
If
you
click
on
issues,
we
have
things
that
are
kind
of
useful
at
the
top.
Currently
we
have
two
pin
things,
and
one
of
them
is
the
weekly
update.
B
The
other
one
is
ideas
for
this
show.
So
if
you
have
ideas,
look
at
that
and
you
can
always
jump
to
the
latest
update
and
this
we
tell
you-
you
know
what
we're
doing
and
the
prs
that
were
fixed
this
week.
So
if
you
want
to
see,
for
example,
which
prs
we
had
for
five
zero
one,
then
they're
all
listed
there
and
you
can
click
through
them
and
see
everything
about
what
we
fixed
for
five
zero
one.
So
that's,
basically
the
state
of
the
unicorn.
B
For
now,
I'm
gonna
pass
back
over
to
shai
to
continue.
A
Thank
you,
so
maybe
you
can
put
up
the
list
of
links,
which
is
something
we
also
do.
So
we
share
a
bunch
of
links
which
have
appeared
in
the
last
two
weeks
and
which
are
relevant.net.
You
can
see
them
by
the
way
on
the
on
the
page.
Can
anybody
everybody
see
this.
B
I
think
I've
shared
mine
instead
of
yours
haven't
I
anyway,
it's
there.
So
let's
talk
through
them.
Sure.
A
No
problem,
so
the
first
one
on
the
list
is
what
we're
going
to
be
discussing
today.
So
I'm
not
going
to
talk
about
too
much
llb
gen
pro
is
what
is,
is
france
buma's?
Maybe
I
guess
we
can
say
so
we'll
devote
quite
a
bit
of
time
to
it.
The
second
thing,
which
is
quite
important,
is
sql.
Client
2.1
has
released.
So
this
is
a
minor
version
release.
It's
it's
actually
quite
important.
If
you
look
at
the
at
the
release,
notes,
there's
quite
of
quite
a
lot
of
stuff
that
happened
there.
A
I
remember
there's,
there's
quite
a
few
stability
things,
so
it's
really
recommended
to
go
use
it.
One
important
note
is
that
this
thing
came
out
right
after
the
ef
core
5.0
milestone.
So
if
you
use
ef
core
with
sql
server,
you
don't
get
this
by
default.
What
you're
going
to
have
to
do
is
add
an
explicit
package
reference
to
2-1
in
your
cs
project
in
order
to
get
you
know
to
get
this,
and
it's
highly
recommended
that
you
do
in
general.
A
I
guess
that's
all
I'm
going
to
say,
and
then
so
japanese
have,
for
those
of
you
who
don't
know.
Jetbrains
is
a
company
that
produces
really
really
nice
tools
like
resharper
and
ryder,
and
all
that
they
produce
quite
a
nice
tutorial
to
entity,
framework,
5
and
new
features
and
stuff
like
this.
So
this
is
a
tutorial
level
thing
that
kind
of
gets
you
through
how
you
set
up
a
new
project
and
how
you
do
you
know
some
of
the
basic
capabilities
relationships,
inheritance
and
so
on
and
so
forth.
A
It's
really
a
nice
nice
intro
into
ef
core.
If
you're
not
very
familiar
with
it,
I
guess
moving
on
yeah
the
next
one
is
really
nice.
So
this
is
basically
a
demo
of
how
to
do
ef
core
from
an
azure
functions.
Application.
So
azure
functions
is
basically
serverless
for
those
of
you
who
don't
know
the
concept.
A
That
means
that
you
don't
have
a
server
somewhere
where
you're
running
your
application,
you're
basically
deploying
your
code
directly
onto
a
service,
and
it
so
happens
that
you
can
do
ef4
from
that
as
well.
So
this
take
a
look
at
this
if
you're
yeah,
it
is
also
the
thank
you
author.
This
is
also
it
happens
to
do
this
on
process,
which
is
obviously
close
to
my
heart,
but
the
specifics
aren't
really
that
that
important,
because
they
you
know,
we
of
course
supports
different
databases
in
in
much
the
same
way.
A
So
this
is
a
nice
intro
to
how
you
go
about
setting
up
ef
core
from
azure
functions
recommended
for
anybody
thinking
about
serverless
in
the
cloud.
The
next
one
is
actually
also
very
timely.
So
auditing
is
a
problem
that
many
many
people
have
to
deal
with.
So
knowing
exactly
what
happened,
what
was
saved?
What
changes
were
made?
This
shows
a
certain
approach
like
a
walkthrough
of
how
to
do
how
to
implement
auditing
in
your
applications
by
overriding
save
changes.
A
It's
kind
of
it's
very
timely
because
I
say
it's
timely
because
if
core
five
has
several
features
related
to
intercepting
what
happens
during
save
changes,
I
I
you
should
probably
go
to
the
release,
notes
anybody
who's
interested
in
auditing,
there's
something
called
an
interceptor
for
save
changes
that
you
can
do
now
in
ef45.
That
means
you
can
basically
plug
in
a
piece
of
code
that
happens
before
and
after
save
changes
occurs,
which
is
another
way.
A
This
is
an
alternative
to
what
you're,
seeing
here,
which
is
another
way
of
plugging
into
that
process
and
doing
auditing
or
anything
else.
You
want
to
do
when
doing
this.
Another
thing
another
approach
that's
been
enabled
in
e45
is
events,
which
is,
let's
say,
a
more
lightweight
alternative
to
interceptors
when
you
just
want
to
receive
event
on
on
these
things
happening.
If
what
you
want
to
do
is
just
auditing,
then
maybe
events
is
the
way
to
go
in.
A
In
that
sense,
or
of
course,
you
know,
this
blog
post
also
shows
a
perfectly
workable
and
legitimate
approach
as
well
yeah,
and
I
think
the
last
thing
just
as
a
reminder
to
everybody,
with
the.net
core
five
and
escort
five
release
we
had.netconf
as
well.
So
all
the
sessions
are
online.
That's
that's,
that's
quite
important.
You
can
go
and
browse
them
at
your
leisure
and
see
everything.
A
This
includes
the
entity
framework,
core
talk
which,
which
I
did
with
jeremy
lichtness,
where
we
kind
of
went
through
all
the
nice
things
that
you
know
in
ef
core
five,
but
you
know
take
a
look,
there's
a
lot
of
content
there.
It's
it's
very
accessible.
The
sessions
are
short
and
they're
meant,
for
you
know,
entry
level
rather
than
very
advanced,
so
anybody
should
be
able
to
take
a
look
and
understand.
What's
going
on
in
the
world
of
dotnet
today,.
C
A
I
think
that's
about
it
for
our
links
and
with
that
I
think
we're
gonna
just
turn
to
our
guest.
That's
the
main
event
of
the
day,
so
friends,
I'm
basically
gonna
turn
it
to
you.
Maybe
you
can
tell
us
a
little
bit
about
you
know
who
you
are
where,
where
you're
coming
from
and
what
you've
done.
C
Page
well,
I've
been
using.net
since
2002
when
it
was
first
released.
Back
in
the
day
I
created
a
small
generator
called
lblgen
which
generated
stored
procedures
back
in
the
day.
You
pointed
it
to
a
database
and
it
will
generate
it
all
correct
store
procedures
for
you.
C
It
became
very
popular,
but
I
had
it
was
very
strict
in
its
feature
set.
So
people
ask
me
all
kinds
of
updates
for
it,
and
I
didn't
have
time
and
also
it
was
really
not
very
extendable,
but
because
of
all
the
the
the
popularity
of
it,
I
decided
to
build
into
a
commercial
project,
and
that
became
the
plan
was
to
build
a
big
store
procedure
generator
because
it
was
a
big
fan
of
stoppages
back
in
the
days.
C
C
All
the
way,
through
the
project,
I
basically
hit
the
wall,
the
wall
behind
me,
because
basically,
it
wasn't
really
possible
to
generate
store
procedures
from
tables
without
some
kind
of
dsl
for
expressions
or
kind
of
stuff.
So
I
decided
to
turn
the
ship
around
and
build
an
orm
in
a
couple
of
months
with
a
basic
designer
on
top
of
it.
With
these
other
tables,
I
want
to
have
entity
classes
and
mappings
to
it
and
from
there
I
build
it
out
to
the
designer
we'll
see
in
a
minute
that
was
18
years
ago.
B
C
Yeah
and
I
got
the
idea
from
the
first
visual
studio
marketing
stuff,
that
was
type
data
sets
and
a
fancy
designer
with
fancy
models
and
and
graphics
on
on
the
screen-
and
I
thought
oh,
this
is
this
is
really
great,
but
it
was
really
rigid
and
and
not
not
really
flexible
for
for
a
lot
of
projects.
So
I
thought
well,
let's
write
one
of
my
own
generators
for
this.
Instead,
like
any.
C
C
C
It
will
become
apparent,
but
basically
the
support
is
that
the
abstract
entity
model
and
all
the
other
models
in
the
designer
will
be
generic
for
all.
Orms
will
be
the
same,
but
the
the
code
generated
for
the
orms.
C
C
And
there
are
several
ways
to
create
entities
in
our
designer
first
one
is
the
right
click
method
if
you
want
to
click
you're
right
right
way
through
the
day.
You
can
use
this,
but
it's
really
it's
okay,
but
it's
not
really
what
we
developers
want.
We
want
to
to
type
stuff,
so
we
have
a
different
kind
of
modeler
and
it's
named
quick
model
and
quick
model
is
really
meant
to
be
to
model
quickly.
C
C
To
change
to
translate
your
notes
to
the
model,
to
the
information
that
they
can
use,
so
you
can
just
type
in
things
and
if
the
the
the
modeler
recognizes
a
name
of
an
existing
element,
it
will
reuse
the
element.
If
it's
not
there,
it
will
create
it.
So,
for
example,
if
I.
A
Time
I
love
it
when
there's
I
love
it
when
there's
a
command
line
interface
to
something
in
general,
so
that's
what
it.
C
C
Now
so
now
I
have
this
simple
model,
but
no
fields
in
it,
but
I
can
already
show
this
to
my
domain
expert
and
say
well:
do
you
recognize
these
entities
in
your
domain
and
likely
they
will
recognize
the
boxes
and
the
lines
between
them
as
something
they
they
they
recognize
in
their
domain.
So
I
will
now
fill
in
the
fields.
C
So
I
will
change
the
scope
to
the
entity
and
when
I
change
the
scope,
the
the
the
elements
the
editor
will
recognize
will
also
change
with
it.
So
if
I
type
in
in
id
with
type
int,
it
will
see
it
will
see.
There
is
no
id
field
yet
in
customer,
so
it
will
create
it.
But
if
I
again
type
id
and
then
a
star
to
mark
it
as
a
primary
key
field,
it
will
reuse
that
field
because
it's
already
there,
the
types
I
use
here
are
type
shortcuts.
So
I
can.
C
I
can
just
define
new
ones
if
I
want
to.
These
are
shipped
with.
The
designer,
like
string,
is,
for
example,
mapped
to
system.string
and
in
this
map
to.
A
So
this
is
something
that
that
is
really
destined
for
somebody
who's,
not
necessarily
so
this
is
for
a
modeler
for
a
person
who's
not
even
a
developer
right,
yes,
they're,
defining
the
box
and
the
lines
and
then
later
that's
that's,
going
to
be
taken
up
by
the
developer
and
actually
deployed
to
a
database
scheme
or
something.
C
Yes,
we
will
see
that
in
a
bit,
but
you
can
also
see
if,
for
instance,
I,
if
I,
if
I
go
to
the
product
entity
and
edit
it,
and
I
will
put
it
in
a.
C
C
So
the
things
I
type
in
here,
like
I
really
have
to.
I
don't-
have
enough
space.
B
So
this
is
this
is
definitely
your
domain
level
modeling
right,
yes,
does
it
do
do
you
do
something?
B
I
I
assume
you
can
configure
these
things
to
map
to
the
database
in
certain
ways
as
well,
and
that
would
be
less
domain
specific
and
more
about
how
you're
actually
implementing
it
with
the
orm.
C
Yes,
well,
we
have
predefined
some
some
types,
like
string,
for
example,
that
it
maps
to
a
unicode
character
set.
But
if
you
want
to
have
the
varying
fields,
for
example,
you
can
you
can
specify
that
in
the
settings.
B
But
if
I
wanted
to
have
an
inheritance
hierarchy
here,
this
this
view
would
display
it
as
an
inheritance
hierarchy,
and
then
we
would
map
it
to
a
tpt
pattern
or
a
tph
pattern
or
something
else.
C
Yes,
with
two
tables,
for
instance,
and
a
foreign
key
between
the
two
primary
keys.
B
Does
the
designer
show
that
mapping?
I
asked
because
it's
something
that
we've
we've
talked
about
a
lot
over
the
over
the
years
is
having
a
designer
that
can
easily
visualize,
not
only
your
domain
model,
but
also
the
mappings
to
the
database.
The
af
designer
is
particularly
bad
at
this,
which
is
probably
why
we
just
discuss
it
a
lot.
A
C
Yeah,
so
if
I
now,
if
I
automatically
created
the
the
inheritance
hierarchies
based
on
the
foreign
key
constraints,
so
if
I
open
this
one-
and
I
show
this
is
the
inheritance
info
for
the
customer
entity
and
it's
two
subtypes
and
if
I
go
to
the
mappings,
for
instance,
I.
C
So
if
I
go
back
to
my
model,
we
will
see
in
a
bit.
That
is
how
it's
created
those
kind
of
mappings.
Do
I
have
all
the
fields
now.
C
B
C
What
kind
of
field?
Okay!
So
now
I
have
this
little
model
and
I
can
see
at
the
top.
I
have
four
errors
errors
and
that,
because
I
don't
have
any
mappings
yet
the
errors
you
see
are
coming
from
the
validation
services
run.
In
the
background,
various
level
levels
of
validation
are
happening,
for
instance,
the
model
validation,
the
mapping
validation,
but
also
validation,
specific
on
the
target
framework,
in
this
case
entity
framework
core
5,
because
not
every
framework
supports
all
the
features
in
the
designer.
C
For
instance,
nt
framework
cord
3
didn't
support
many
to
many
relationships.
So
if
I
have
a
many-to-many
relationship,
it'll
flag,
that
there's
an
error
because
it
won't
be
able
to
to
generate
code
for
that
in
in
output,
you
can
also
give
suggestions
how
to
fix
it
and
clickable
links
for
you
to
perform
the
the
suggestion
automatically
or
go
somewhere
in
an
editor,
for
instance,
to
to
solve
the
problem.
Well,
in
this
case,
I'm
going
to
click
this
one
to
open
the
synchronization
feature,
and
this
will
synchronize
the
abstract
entity
model.
C
And
now
it
has
created
tables
in
the
project
we
will
show
which
I
will
show
in
a
bit.
So
they
are,
you
haven't.
C
Yeah
it's
in
the
it's
in
the
project,
so
it's
really
disconnected.
When
I
click
close,
it
will
say:
do
you
want
to
generate
your
ddl
script?
C
A
B
B
Question
so
do
you
have
so
if
you,
if
you
execute
that
that
script
and
create
your
tables
and
then
add
or
remove
something
from
your
model,
does
it
have
the
ability
to
generate
just
the
the
diffs
to
the
ddl,
or
how
do
you
manage
that.
A
C
So
this
is
a
new
field.
I
have
automatically
it
says:
yeah
you
have
to
map
it,
so
I
have
to.
I
can
go
to
the
editor
and
select
one,
but
there's
no
field
yet.
So
I
have
to
sync
again.
C
A
A
We
have
this
constant
conversation
as
well
with
our
users.
You
know
some
users
really
like
to
like
what
we
constantly
fight
about.
Some
users
really
like
to
apply
their
schema
changes
when
the
application
starts
and
then,
rather
than
generating
a
ddl
script,
and
you
know
deploying
it
like,
which
is
the
way
it
should
be
right,
and
then
you
have
all
kinds
of
problems
when
two
applications
start
up
at
the
same
time
and
conflict
and
all
that
kind
of
stuff
anyway.
So
we
so
we.
B
Used
to
have
three
marketing
terms
for
ef
code
first
model
first
and
database
first,
and
I
think
people
know
what
database
well.
B
The
problem
with
those
marketing
terms
is
people
don't
really
know
what
they
mean,
but
but
database
first,
at
least
conceptually
is
you
start
with
a
database,
and
then
you
generate
or
create
your
mappings
to
that
existing
database
and
code
first?
Is
you
create
mappings
to
a
database
that
may
exist,
but
you
can
also
use
migrations
to
to
update
that
database
after
just
writing
code.
B
This
is
an
example
of
model
first,
which
we've
never
had
a
good
story
for
in
ef,
because
it
really
requires
a
good
designer
like
this,
where
you
start
with
your
domain
model
and
you
model
the
domain,
and
then
you
think
about
both
the
code
and
the
back
end
get
both
the
code
and
the
back
end
database
from
that
right.
Yes,.
B
Lamsa
on
the
team
is
theoretically
very
much
in
favor
of
this
kind
of
model,
first
development,
but
it
it
does
require.
You
have
have
a
good,
a
good
design
tool
to
do
the
modeling
in
yeah.
Basically,.
A
Sure
yeah
it's
and
it's
interesting
to
compare
so
at
least
ef
core.
Is
you
usually
do
things
as
a
via?
What's
called
a
code
first
approach
right,
your
model
is:
is
your
code
right?
That
represents
your
model
and
changing
your
ma?
Changing
the
model
actually
means
changing
c
sharp
code,
which
represents
your
model
right.
So
we
don't
have
this
kind
of
additional
layer
above
it
which
it's
it's
interesting
to
compare.
C
So
if
I
create
a
new
drive
model-
and
I
will
choose
the
dto
class
model,
you
can
also
choose
a
document
database
class
model
for
denormalized
documents
based
on
your
relational
model
data,
and
I
will
create
a
derived
element
for
order
and
on
the
left,
you
will
see
the
elements
you
can
select
for
your
dto
and
on
the
right.
You
will
see
the
current
shape
and,
if
I
want
to
say,
have
the
order,
information
and
the
company
name
of
the
customer
and
the
order
lines
with
the
product
name
of
the
product.
C
C
C
So
now
I'm
done
with
the
model,
and
I
will
now
generate
code
for
this
I'll.
First
fix
this
to
the
more
modern
dot
net
standard,
2.1
and
I
will
add
one
other
code
generation
tasks
and
it's
for
model
documentation,
because
there
are
there's
a
lot
of
information
in
the
model
and
for
developers
it's
often
not
clear
which
table
a
product,
for
instance,
is
mapped
on
or
what
types
of
a
field
are
how
things
relate
to
each
other.
A
C
A
C
C
C
A
Very
nice,
this
is
sort
of
reminding
me
of
you,
know
the
swagger
approach
for
for
web
apis.
Where,
where
you
get
as
part
of
your,
you
know
defining
what
your
service
is
and
what
your
aps
are.
You
also
get
an
accessible.
You
know
site
for
calling
those
things,
so
it's
kind
of
a
self-documenting
thing
in
the
same
way,
yeah.
C
Okay,
so
we
have
all
this
generated
code
and
how
does
it
look
like,
for
instance,
now
we
have
this
first
I'll
start
with
this
dto
object.
This
is
the
derived
element
from
the
in
the.
B
B
C
Application,
the
dtos
are
the
you
can
use
both
I
mean
if
you
want
to
use
the
entity
classes
at
the
level
inside
a
service.
For
instance,
you
can,
if
you
want
to
expose
objects
to
a
client,
for
instance,
it
might
be
better
to
to
use
a
dto,
because
an
abstract
entity
model
is
is
great
for
defining
what's
in
reality.
C
What's
in
your
domain,
but
a
derived
element,
for
instance,
like
this
order,
is
great
for
shaping
the
data
in
such
a
way
that
it's
better
for
your
user
interface
or
for
your
client
yeah.
B
C
C
This
is
the
generated
link
projection
for
which
actually
creates
the
objects
at
runtime,
and
it
also
has
a
compiled
version
of
it.
So
you
can
use
it
on
an
existing
order
entity
you
have
in
memory
all
the
entity.
Classes
are
simple,
straightforward,
like
you
would
have
written
it
to
yourself
by
hand.
C
The
context
is
also
pretty
straightforward.
The
model
builder
we
generate
one
extra
thing:
this
isn't
a
way
to
make
read-only
entities
a
reality
and
anti-framework
core.
I
I
think
it's
still
necessary
to
do
this.
Our
designer
yeah.
B
C
C
So,
and
in
a
designer
you
can
oh,
this
is
the
wrong
one.
Let's
close.
A
Yeah,
there's
the
other
side
of
read-only,
I'm
just
just
to
complete
the
picture
where
users
sometimes
expect
to
be,
which
is
more
about
immutable
where
users
expect
to
be
able
to
like,
with
how
you're
supposed
to
do
with
records
in
c
sharp
nine
nowadays,
which
is
to
copy
across
it
and
to
create
a
new
instance.
That's
a
copy
of
the
previous
instance
with
the
modifications
and
to
have
your
orm
ef
core.
You
know
detect
that
and
persist
that
to
the
database.
So
that's
a
different
kind
of
thing.
I
guess.
C
Yeah,
so
the
re-
this
only
comes
from
this
one.
Actually,
so
you
can
just
say
retrieve
or
for
a
specific
entity,
and
it
will
generate
that
in
the
mapping
file
very
cool
okay,
so
this
is
all
generated.
So
now
we
go
to
the
code,
that's
actually!
Oh.
This
is
also
generated
because
the
ide
generated
this
for
me
for
to
to
create
the
service-
and
I
have
a
controller
here-
and
this
is
actually
the
complicated
line.
C
I
use
the
generated
projection
function
to
create
the
shape
with
the
related
entity
data
because
it's
in
the
projection
function
and
I
I
will
return
the
first
one,
which
is
just
one
but
which
is
there's
just
one
in
the
order
set
because
of
the
primary
key,
but
that's
okay,
and
if
I
build
this
now
it
will
run.
Of
course,
where
is
it
it's
here?
Here
is
our
swagger
ui.
C
That
was
automatically
added
for
the
server
for
the
service
and
if
I
want
to
try
it
out,
and
I
specify
5,
for
instance,
you
will
see
the
query
that
has
been
executed
by
entity
framework
core
and
it
will
join
in
the
the
information
automatically
from
the
related
entities.
B
We
have
a
question
from
from
somebody
asking
about
xml
llb
jim
proj
file.
Are
you
going
to
move
from
that.
C
Am
I
going
to
move
oh
yeah,
the
project
file
is
xml.
C
C
B
C
But
defining
a
new
dsl
for
that
basically
also
ends
up
in
a
lot
of
yeah
conflicts
because
things
are
related
to
each
other.
So
if
I,
if,
for
instance,
two
users
both
add
an
order
entity
and
one
is
mapped
to
a
different
table
than
the
other,
and
you
want
to
merge
that
into
a
single
file
using
source
control,
it
will
get
problematic.
A
Yeah
one
point:
everybody
hates
conflicts
and
source
control
really
really,
but
some
some
people
forget
that
sometimes
a
conflict
is
a
good
thing,
in
fact.
So
in
this
kind
of
case
you
want
that
conflict
right,
because
the
two
people
actually
did
something
which
does
conflict
in
the
real
world
and
source
control
also
helps
you
detect
that
and
know
that
you
have
to
deal
with
it.
So
I'm
always
I'm
always
kind
of
when
people.
I
do
understand
this
and
I
hate
you-
know:
conflicts.
C
B
C
My
apologies,
if
I
say
something
stupid
because
I
haven't
really
looked
into
sauce
control,
a
source
generators
that
much
but
it
can,
it
can
help
a
bit
because
writing
them
is
really
a
pain.
B
C
What
I've
seen
at
the
moment,
if,
if
you
for
instance,
look
at
this
is
just
a
text
file,
anyone
can
read
it.
I
I
can
just
add
a
couple
of.
C
C
Code
general
in
source
generated
generators,
it's
really
more
hidden
for
you.
I
think.
A
B
C
A
Cool
things
I
just
wanted
to
say
that
just
a
step
take
a
step
back
that,
first
of
all,
I
find
this
very
awesome
and
it's
definitely
something
that's
that's
missing.
So
in
the
days
of
ef6
and
the
older
days,
you
know
we
have
had
a
designer,
obviously
as
part
of
integrated
in
visual
studio
and
in
the
ef
core
days,
we've
kind
of
moved
away
from
it
and
the
team
is
concentrated
on
other
things,
so
that
that's
that's.
A
I
know
that
this
is
important
for
a
lot
of
people
and,
to
be
frank,
I
don't
think
I'm
not
very
familiar
with
the
old
designer,
but
I
have
the
the
impression
this
goes
way
way
beyond.
You
know
what
what
it
used
to
do.
A
A
C
A
Can
I
ask
one
more
question
before
diving
into
the
old
stuff?
I
just
want
to
make
sure
so
what
we've
seen
now
was
the
llblgen
pro
designer.
If
I'm
not
mistaken,
you
also
have
what
you
call
a
runtime,
an
actual
rm,
that's
gonna!
That's
that's!.
A
Is
you
can
say
a
competitor
or
an
alternative
to
ef
core
right
or
to
link
to
sql,
and
these
are
two
two
different
things
which
you
can
so
you
can.
In
fact,
in
the
beginning,
I
was
surprised
that
you
can
use
the
designer
with
ef
course
I
mean,
but
actually
now
that
I've
seen
this.
It
makes
a
lot
of
sense.
So
there's
the
option
of
also
going
with
with
the
lobo
gen
pro
runtime,
which
has
you
know,
different
different
features
that
I'm
guessing
than
than
eve.
C
No
right
now,
if
you
want
to
use
a
designer
with
ef
core
perfectly
fine,
if
you
want
to
use
our
runtime,
you
can
also
do
that
and
it's
basically
born
from
the
from
the
necessity
that
microsoft
was
pushing
entity
framework
an
empty
framework
core
later
on,
as
d
run
time
for
database
access,
so
yeah,
we,
our
niche,
is
becoming
smaller
and
smaller.
C
B
C
Yeah
so
so,
basically,
it
became
a
choice
between
okay.
We
stick
with
our
own
stuff
only
and
we
become
irrelevant
or
we
use
what
we
have
in
a
design
front
and
use
it
with
entity
framework
as
well,
and
I
found
that
more
practical
approach
because
yeah,
it's
still
an
abstract
empty
model.
You
have
to
define
and
users
of
entity
framework
and
entity
framework
or
have
the
same
problem.
They.
B
C
B
It's
interesting
because,
when
I
started
on
the
team,
I
certainly
had
the
impression
that
llb,
gen,
pro
and
and
hibernate
were
competitors
to
what
we
were
doing
on
entity
framework,
and
this
was
12
years
more
than
12
years
ago,
and
I'm
not
saying
that
that's
what
people
will
hire
like
vps
at
that.
I'm
not.
I
don't
know
what
I
have
ideas,
what
they
might
be
thinking,
but
I'm
not
saying
that
they
were
thinking
we're
competing
with
these
things,
but
on
the
team
we
we
we
definitely
talked
about
it.
B
That
way
and
I
think
we're
in
a
much
better
place
now.
We
definitely
don't
think
that
way
anymore,
and
this
is
awesome
having
this
out
there
for
people
who
are
using.net
as
an
option
to
have
this
designer
this
very
professional
designer
support
in
there.
You
can
make
the
argument
that
you
know.
Microsoft
should
just
do
this,
but
then
there's
other
people
out
there
and
if
they,
if,
if
they
have
the
skills
and
the
and
the
tools
and
the
experience
to
to
build
these
things,
then
it
makes
the
whole
ecosystem
around.net
better.
B
And
I
think
that's
all
a
great
thing,
and
I
love
that
you
can
use
this
with
different
rms-
that
you're
not
tied
into
to
one
thing
as
well.
That's
another
thing
that
we've
tried
to
do
you
know
with
database
providers,
don't
tie
you
into
sql
server,
but
you
can
still
use
postgres
just
as
easily
and
that
kind
of
thing
so
yeah.
C
Well,
thank
you
yeah.
It's
it's
really
night
and
day
compared
to
the
the
attitude
of
microsoft
from
years
ago,
where
oh
something.
B
I
think
I
think
we've
grown
a
lot
as
a
company.
You
could
say
I
mean
that's,
that's
weird
for
me
to
say
as
being
one
very
small
part
of
you
know
of
everything,
but
from
my
experience
it's
it's
it's
a
different
place
to
work
than
it
used
to
be
with
very
different
attitudes
across
a
lot
of
things
and
yeah
yeah.
It's
it's
good
good
for
the
for
the
community.
I
think.
C
B
C
B
No,
it's
interesting
because
I
think
you
have
a
very
valid
point:
why
does
microsoft
invest
any
money
in
developing
ef
core
and
you
know,
and
it's
and
and
I
frequently
have
asked
that
question
over
the
years-
and
I
think
there
are
good
answers
to
that-
I'm
not
going
to
dig
into
the
details.
You
know,
I
don't
think
it
would
be
appropriate
for
to
dig
into
all
of
the
details
of
that.
But
there
are.
B
There
are
good
answers
for
that,
but
there's
also
definitely
a
how
much,
how
much
resources
does
it
make
sense
to
put
on
this
and
that's
where
we
then
run
into
the
the
interesting
discussions
with
with
customers
and
people
in
the
community
saying
well,
why
haven't
you
done
more
work
on
it
and
like
well?
You
know,
on
the
one
hand
you
you
know,
friends
is
making
a
very
good
point.
Why
are
you
investing
at
all
and
you're
saying?
B
Why
isn't
microsoft
investing
lows
in
this
and
it's
like,
I
think
we
have
a
balance
in
the
middle
that
makes
sense,
and
I
I
think
I
think
we've
come
to
that.
But
it's
a
it's
a
difficult,
complex
area
to
figure
out
what
it
makes
sense
to
invest
in.
C
B
C
B
B
B
I
don't
know
if
we
can
answer
that,
but
I
would
say
I
don't
think
we're
neglecting
it.
The
the
team
on
sql
client
is
is
doing
a
really
good
job
in
a
with
a
very
difficult
code
base.
I
think
we
can
say
and
they
are
moving
it
forward.
It's
as
we've
just
talked
about
not
as
fast
as
some
people
would
like
it
to
be,
and
maybe
some
people
think
there
should
be
more
investment
there
unless
in
other
places,
but
but
we
are
doing
it
and
and
wraith.
B
I
know
you've
been
a
been
a
great
contributor
to
that
whole
that
whole
project
so
having
the
community
in
on
there
really
helps
as
well,
but
yeah
we
we
do
need
to.
We
do
need
to
make
that
that
driver
better.
I
think
that's
that's
clear.
C
I
can
add
postgres
just
with
a
couple
of
clicks
anyway,.
C
A
C
C
This
is
all
this
is
an
old
virtual
machine.
From
back
in
the
day
when
I
moved
to
a
new
machine,
I
created
a
virtual
machine
of
the
old
one
and
used
that
in
vmware
to
maintain
old
versions,
I'm.
C
This
all
this
virtual
machine-
I
have
so
this
is
c
plus
plus
code
for
exporting
sql
server
data
to
a
text
file
and
also
import
data
from
the
text
file
into
sql
server
to
communicate
with
an
as300
for
400.
For
for
a
customer
of
mine
back
in
the
day.
C
C
C
A
C
It
will
serialize
and
back
later
you
can
serialize
it
back
into
a
record
set
connect
it
to
an
open
connection
and
just
save
the
changes.
That's
really
handy,
for
instance,
when,
if
you're
on
a
laptop
and
it's
on
a
train-
and
you
don't
have
the
internet
access
of
course.
Nowadays
everybody
has
internet
access
in
a
lot
of
places
in
the
world.
A
A
A
B
I
remember
writing
code
to
manipulate
cursors.
You
know
I
was
I
was
saying
before
we
before
we
came
live
here
that
when
I
applied
for
the
job
at
microsoft,
I
definitely
didn't
want
to
do
any
database
stuff
and-
and
part
of
that
was
my
experience,
trying
to
work
with
curses
directly
in
databases
and
figure
all
that.
C
But
I
still
remember
when
ado.net
came
out
and
it
didn't
have
record
set
capabilities,
for
instance,
that
you
can
move
the
cursor
back
to
the
first
row
and
do
that
kind
of
magic.
There.
C
C
A
C
This
is
from
a
complete
management
system.
I
wrote
before
llb
elgin.
I
thought
it
was.
It
will
be
very
big
because
we
first
had
a
web
design
company
and
we
wrote
a
content
management
system
and
everybody
should
use
our
system.
Of
course,
why
not?
But
I
forgot
to
realize
that
every
web
design
bureau
also
had
developers
who
were
written
writing
content
management
systems.
So
this
was
a
complete
failure.
C
But
it
had
a
lot
of
com
components
for
working
with
data
and
store
procedures,
of
course,
god
and
stop.
B
C
B
Still
exist,
but
it's
it's
not
nearly
the
same
as
it
was
15
years
ago,
where,
if
you
didn't
support,
store
seniors,
you
basically
got
told
go
away.
Everything
has
to
be
stopped
stages.
Now
it's
more
of
a
oh
we're
still
stuck
in
that,
because
our
dba
is
still
stuck
in
there
or
whatever.
But
it's
a
lot
less
common
right.
C
Yeah
well
one
of
the
nice
things
about
this.
Is
that
because
it's
a
com
component,
you
can
install
it
in
a
transaction,
server.com
plus
server
on
a
server
on
your
network,
and
you
can
then
install
a
proxy
dll
on
your
client
system
and
your
client
can
communicate
with
that
dll
and
over
the
network.
It
will
proxy
your
calls
to
the
server
object.
B
C
Vp,
I
still
have
the
plan
to
create
some
some
tests.
How
fast
this
is
on
modern
hardware,
yeah
yeah,
interesting,
because
I
still
think
because
this
compiled
to
native
code
that
it
it
can
compete
with
modern
day.net
code,
I'm
still
convinced
it
is
because
I
have
to
test
it,
of
course,
but
no
one
wants
to
use
this
stone
age.
B
Okay,
well,
I
think
we're
we're
out
of
time
here,
so
I
think
I
should
definitely
thank
franz
for
a
great,
a
great
presentation
here.
I
I
learned
a
lot
and
super
exciting
to
see
see
this
stuff.
So
thanks
thanks
a
lot
friends.
B
Okay,
well
thanks
everybody
for
watching,
and
we
will
talk
to
you
out
so
no
more
ef
course:
stand-ups
or
entity
framework
standard
community
stand-ups
for
this
year,
we'll
be
back
next
year
with
jeremy,
probably
running
the
buttons
and
doing
a
much
better
job,
so
have
a
great
holiday
period.
If
you're,
if
you're
having
one
in
in
your
area
and
we'll
see
you
in
january,
I
think
so.
Bye,
okay,.