Entity Framework e oggetti business

Non ho mai usato la struttura di entity framework prima e vorrei provare alcuni progetti personali implementandolo per bagnare i piedi.

Vedo che le quadro possono essere esposte al livello di presentazione. Ma non voglio che alcuni campi siano esposti, campi come date modificate e date di creazione e vari altri campi di database.

come posso implementare gli oggetti Business e solo esporre le proprietà di cui ho bisogno ma mantenere gli oggetti serializzabili?

Anche quali vantaggi ha su LinqToSql?

Quando si definisce un’entity framework nel modello EDMX, è ansible specificare la visibilità di setter e getter di ogni proprietà, quindi se non si desidera che ModifiedDate sia visibile in altri livelli, è sufficiente specificarlo come interno.

inserisci la descrizione dell'immagine qui

Se i requisiti sono più complicati, come ModifiedDate dovrebbe essere accessibile nell’assieme quadro e nell’assembly della logica aziendale ma non nell’assembly dell’interfaccia utente, è necessario creare un altro object che verrà scambiato tra la logica business ei livelli logici dell’interfaccia utente.

Come posso iniziare con Entity Framework?

Guida introduttiva (Entity Framework)

Esercitazioni su Entity Framework

Utilizzare personalmente una class wrapper su quadro ed esporre o ombreggiare ciò di cui ho bisogno.

// 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; } } 

Si associano solo le proprietà che si desidera al livello di presentazione, questo può essere fatto attraverso la dichiarazione, un livello di business logic (con il proprio livello di astrazione dell’object) o ViewModel.

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

// considera questo è un nuovo elenco di oggetti di Contact che è una tabella nel database // usando il framework di quadro questa tabella di database è mappata a un object che tu vuoi gestire

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

// utilizzando un gran numero di LINQ puoi ora selezionare o eseguire query su qualsiasi tabella nel tuo database e devi // accedere alle colonne in quell’esempio di tabella (Email) qui

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

// piuttosto che

  string sqlcommand = "select email from Contacts"; Contact con = new Contact(); con.Email= "[email protected]"; 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