ventajas que framework first ejemplo desventajas code .net entity-framework orm ado.net

.net - que - entity framework select



Cualquiera que use el Entity Framework*¿Bien*? (3)

¿Quieres decir así?

<edmx:ConceptualModels> <Schema xmlns="http://schemas.microsoft.com/ado/2006/04/edm" Namespace="Model1" Alias="Self"> <EntityContainer Name="Model1Container" > <EntitySet Name="ColorSet" EntityType="Model1.Color" /> <EntitySet Name="DoctorSet" EntityType="Model1.Doctor" /> <EntitySet Name="PatientSet" EntityType="Model1.Patient" /> <EntitySet Name="UsedCarSet" EntityType="Model1.UsedCar" /> <AssociationSet Name="Vehicle_Color" Association="Model1.Vehicle_Color"> <End Role="Colors" EntitySet="ColorSet" /> <End Role="Vehicles" EntitySet="UsedCarSet" /></AssociationSet> <AssociationSet Name="DoctorPatient" Association="Model1.DoctorPatient"> <End Role="Doctor" EntitySet="DoctorSet" /> <End Role="Patient" EntitySet="PatientSet" /></AssociationSet> </EntityContainer> <EntityType Name="Color"> <Key> <PropertyRef Name="ColorID" /></Key> <Property Name="ColorID" Type="Int32" Nullable="false" /> <NavigationProperty Name="Vehicles" Relationship="Model1.Vehicle_Color" FromRole="Colors" ToRole="Vehicles" /></EntityType> <EntityType Name="Doctor"> <Key> <PropertyRef Name="DoctorID" /></Key> <Property Name="DoctorID" Type="Int32" Nullable="false" /> <NavigationProperty Name="Patients" Relationship="Model1.DoctorPatient" FromRole="Doctor" ToRole="Patient" /></EntityType> <EntityType Name="Patient"> <Key> <PropertyRef Name="PatientID" /></Key> <Property Name="PatientID" Type="Int32" Nullable="false" /> <NavigationProperty Name="Doctors" Relationship="Model1.DoctorPatient" FromRole="Patient" ToRole="Doctor" /> </EntityType> <EntityType Name="UsedCar"> <Key> <PropertyRef Name="VehicleID" /></Key> <Property Name="VehicleID" Type="Int32" Nullable="false" /> <NavigationProperty Name="Color" Relationship="Model1.Vehicle_Color" FromRole="Vehicles" ToRole="Colors" /></EntityType> <Association Name="Vehicle_Color"> <End Type="Model1.Color" Role="Colors" Multiplicity="1" /> <End Type="Model1.UsedCar" Role="Vehicles" Multiplicity="*" /></Association> <Association Name="DoctorPatient"> <End Type="Model1.Doctor" Role="Doctor" Multiplicity="*" /> <End Type="Model1.Patient" Role="Patient" Multiplicity="*" /></Association> </Schema> </edmx:ConceptualModels>

¿Alguien realmente ha enviado un proyecto de Entity Framework que hace mapeo O / R en clases conceptuales que son bastante diferentes de las tablas en el almacén de datos?

Me refiero a las tablas de unión colapsada (M: M) en otras entidades para formar clases conceptuales que existen en el dominio comercial, pero están organizadas como varias tablas en el almacén de datos. Todos los ejemplos que veo en MSDN tienen poco uso de herencia, el colapso de las tablas de unión en otras entidades o el colapso de las tablas de búsqueda en las entidades.

Me encantaría escuchar o ver ejemplos de los que a continuación, apoyan todas las operaciones de CRUD que normalmente esperaría hacer en un objeto comercial .:

  1. Mesa de vehículo y una tabla de colores. Un Color puede aparecer en muchos vehículos (1: M). Forman la clase conceptual UsedCar que tiene la propiedad Color.

  2. Tablas de doctor, doctorpacientes y pacientes (forman muchas hasta muchas). Los médicos tienen muchos pacientes, los pacientes pueden tener muchos médicos (M: M). Trace las dos clases conceptuales Doctor (que tiene una colección de Pacientes) y Patients (que tiene una colección de Doctors).

¿Alguien ha visto / hecho esto con CSDL Y SSDL en Entity Framework? ¡El CSDL no es bueno si no se asigna correctamente a nada!


Intenté usar Entity Framework en un proyecto existente (~ 60 tablas, 3 con herencia) solo para ver de qué se trataba. Mi experiencia se redujo a:

La superficie del diseñador es kludgy. El mapeo no es intuitivo y alguien debe haber pensado que tener varias ventanas de herramientas abiertas al mismo tiempo es aceptable. Se tardó mucho tiempo en crear manualmente un objeto y mapear los campos correctos, entonces todavía era extraño hablar con él desde el código. Aunque es esencial tener algo manejando la comunicación de la base de datos, creo que entregar el control a EF fue mucho más difícil que hacerlo manualmente .

A veces, el diseñador simplemente no carga hasta que reinicie Visual Studio. Estoy seguro de que es solo un error, pero reiniciar VS es molesto.

Todo tu trabajo termina en un solo archivo, no me gustaría fusionar varias ediciones de desarrollador.

El SQL resultante (observado a través del Analizador) no era muy bueno. Realmente no profundicé en buscar por qué, pero estarías presionado para escribir algo peor en un primer intento.