Rich said:
I have been experimenting a little bit with Entity Framework, and it
seems like it is mimicking an In-memory Integrated development
environment similar to Microsoft Access which is a "Not" In-memory
Integrated development environment. So it appears to me that Entity
Framework offers the ease of an Integrated Dev Evironment with all the
functionality of .Net -- except in memory.
Is this a reasonable view? Or am I missing anything abut the point of
the Entity Framework?
I think you're missing the point.
This is what the ADO.NET Entity Framework is about. And the keyword in
all of this is *object*. An object can be kept in memory. It can be a
single object or collection of objects kept in memory. There is no way
the EF is similar to Access.
What is Object Relational Mapping?
(ORM) is a programming technique for converting data between incompatible
type systems in relational databases and object-oriented programming
languages.
This creates, in effect, a "virtual object database,
" which can be used from within the programming language.
http://en.wikipedia.org/wiki/O-RM
http://www.objectmatter.com/vbsf/docs/maptool/ormapping.html
What is ADO.NET Entities framework?
ADO.NET Entity Framework is an object-relational mapping (ORM) framework
for the .NET Framework. This framework is Microsoft's first ORM
offering for the .NET Framework. While Microsoft provided objects to manage
the Object-relational impedance mismatch (such as a DataSet).
http://en.wikipedia.org/wiki/ADO.NET_Entity_Framework
You have two ways to work with the EF. One is Linq-2-Objects that can
query, update, delete an object/entity on the entity model.
The second way to address the object/entity on the entity model is to
use ESQL.
What is Language Integrated Query?
LINQ is a Microsoft .NET Framework component that adds native data
querying capabilities
to .NET languages. Microsoft LINQ defines a set of query operators that
can be used
to query, project and filter data in arrays, enumerable classes, XML,
relational database,
and third party data sources. While it allows any data source to be
queried,
it requires that the data be encapsulated as objects.
So, if the data source does not natively store data as objects,
the data must be mapped to the object domain.
Queries written using the query operators are executed either by the
LINQ query
processing engine or, via an extension mechanism,
handed over to LINQ providers which either implement a separate query
processing
engine or translate to a different format to be executed on a separate
data store
(such as on a database server as SQL queries).
The results of a query are returned as a collection of in-memory objects
that can be enumerated using a standard iterator function such as C#'s
foreach
What is Entity SQL?
Entity SQL is a SQL-like language that enables you to query conceptual
models
in the Entity Framework. Conceptual models represent data as entities
and relationships,
and Entity SQL allows you to query those entities and relationships in a
format that
is familiar to those who have used SQL.
http://msdn.microsoft.com/en-us/library/bb387145.aspx
When using ESQL you can instantiate a custom object (you made) or
instantiate an entity/object off of the model and populate either one
from the ESQL datareader - end results a single object or collection of
objects held in-memory.
Finally about an object and OOPs is this. Each object from the EF on the
model or a (custom object) can be or is like a little machine in memory
based on the concepts of OOPs.
What is Object-oriented-programming?
(OOP) is a programming paradigm that uses "objects" and their
interactions to design
applications and computer programs.
The key concepts of OOP are the following:
Class
Object
Instance
Method
Message passing
Inheritance
Abstraction
Encapsulation
Polymorphism
Decoupling
http://en.wikipedia.org/wiki/Object-oriented_programming
You're only scratching the surface of the EF, and there is no comparison
between EF and Access -- none.