Entity Framework y Business Objects

Nunca antes había usado el marco de entidad y me gustaría probar algunos proyectos personales para implementarlo y mojarme los pies.

Veo que las entidades pueden estar expuestas a la capa de presentación. Pero no quiero que se expongan ciertos campos, campos como fechas modificadas y fechas creadas y varios otros campos de base de datos.

¿Cómo podría implementar Business Objects y simplemente exponer las propiedades que necesito pero aún así mantener los objetos serializables?

Además, ¿qué ventajas tiene esto sobre LinqToSql?

Cuando define una entidad en el modelo EDMX, puede especificar la visibilidad del setter y getter de cada propiedad, de modo que si no desea que el ModifiedDate sea visible en otras capas, simplemente puede especificarlo como interno.

enter image description here

Si sus requisitos son más complicados, como que ModifiedDate debe ser accesible en el ensamblado de entidades y el ensamblado de lógica de negocios pero no en el ensamblado de UI, entonces necesita crear otro objeto que se intercambiará entre la lógica de negocios y las capas de lógica de UI.

¿Cómo comienzo con el marco de la entidad?

Primeros pasos (Entity Framework)

Tutoriales de Entity Framework

Personalmente uso una clase de contenedor sobre la entidad y expongo o sombreo lo que necesito.

// instead of below property in your BLL: private int m_someVariable; public int SomeVariable { get { return m_someVariable; } set { m_someVariable = value; } } // You can use the entity object: private readonly EntityClass _entityObject = new EntityClass(); public int SomeVariable { get { return _entityObject.SomeVariable; } set { _entityObject.SomeVariable = value; } } // or make it read-only at your BLL public int SomeVariable { get { return entityObject.SomeVariable; } // set { entityObject.SomeVariable = value; } } 

Solo enlaza las propiedades que desea con la capa de presentación, esto se puede hacer mediante statement, una capa de lógica de negocios (con su propio nivel de abstracción de objetos) o su ViewModel.

  // this is your edmx Asset5Entities conx = new Asset5Entities(); 

// Considere que esta es una nueva lista de objetos de Contacto que es una tabla en la base de datos // usando el marco de entidad esta tabla de base de datos está mapeada a un objeto para que usted maneje

  List$gt;Contact$lt; s = new List$gt;Contact$lt;(); 

// usando un gran LINQ ahora puedes seleccionar o consultar sobre cualquier tabla en tu base de datos y tienes // acceso a las columnas en ese ejemplo de tabla (Email) aquí

  var result = from q in conx.Contacts select q.Email; 

// más bien que

  string sqlcommand = "select email from Contacts"; Contact con = new Contact(); con.Email= "xxxx@gmail.com"; con.FirstName="nader"; //etc etc... conx.Contacts.AddObject(con); //rather than " insert into Contact values ......................" //having your queries within ur c# code rather than strings that are not parsed //for errors but on runtime was alot helpful for me 
Intereting Posts